Gradle编译 报错[Invalid byte 3 of 3-byte UTF-8 sequence.] 解决方法

Stars-one 2020年08月25日 363次浏览 本篇字数为0字

本文为作者原创,转载请注明出处,谢谢配合
作者:Stars-one
链接:https://stars-one.site/2020/08/25/gradle编译报错invalidbyte3of3-byteutf-8sequence解决方法


问题

最近在接手公司的Android项目,由于之前同事使用的MAC系统进行开发的,我windows导入项目后编译发生了错误

如下图:

报错信息

而且gradle的打印的中文错误信息也是乱码(黑色的正方形且中间有个?号)的问题

原因及解决

1.使用了DataBinding且使用到了中文

项目中使用到了JetPack的databinding数据绑定框架,百度上搜索方法的时候发现可能由于使用了中文的原因,于是便是搜索了一下

使用find in path搜索@=@={这两个符号,之后进行中文字符的排查,不过我并没有发现有中文

具体菜单

2.Mac与windows系统的utf-8长度不一致

通过网上搜集的资料,发现Mac与windows系统的utf-8的长度不一致,需要添加一个环境变量

JAVA_TOOL_OPTIONS
-Dfile.encoding=UTF-8

环境变量

之后重启系统,打开Android Studio,发现问题得以解决

补充

之后发现能成功编译成apk文件,但是项目的代码却是爆红,导包出现异常,找不到符号,选择清除数据之后就没有错了

清除数据菜单