今天编译突然就遇到一个相当长的异常,之前编译还是好的,就是突然出现的。
而且只有在Windows系统上出现了,mac和linux上面编译还是对的。
通过gradlew clean build编译,就显示MalformedByteSequenceException: 3 字节的 UTF-8 序列的字节 3 无效
。百度了一下,发现都是tocmat发布时候报错,跟Android有什么关系呢,然后一直自我怀疑是不是Android的问题。
从字面意思看是由于xml的编写时不是UTF-8导致的,但你好歹告诉我是哪个文件啊!
网上解决方法
解决方法一
修改项目根目录下的gradle.properties,在org.gradle.jvmargs= 后面加上-Dfile.encoding=UTF-8 参数,定义所有文件的编码为 UTF-8。
解决方法二
配置window环境变量,如下:
环境变量名为: JAVA_TOOL_OPTIONS 变量值为:-Dfile.encoding=UTF-8
配置完成重启Android Studio即可。
BUT!!!BUT!!!
都没有解决!!!
最终去搜索了外网,发现了问题。
是因为我在XML布局使用android:text='@{"就是这里" + data.helloword}'
,是databinding里面使用中文字符串的问题,这样使用是错误的。
正确方法可以是 android:text="@{@string/xxx + data.helloword}"