关于Android databinding 在windows 平台出现的问题解决

在MAC 上使用databinding工具开发的Android项目,换到windows 环境就出现这种报错信息com.sun.org.apache.xerces.internal.impl.io.MalformedByteSequenceException: 3 字节的 UTF-8 序列的字节 3 无效。。。。。。。

出错原因为读取UTF-8格式失败。 

主要原因是开发人员编码不规范导致的,在xml文件中databinding的地方直接使用了中文字符(汉字或者汉字符号都有可能)所以无论在哪里都强调编码规范性,真的是:编码不规范,同事两行泪,下面就简单说下解决方案:

解决方法:

方案1:老老实实的把xml文件的中文改掉:xml布局中间的,使用databinding的部分使用了硬编码的中文,比如android:text=“@{“占位符”},android:text=“@{“xxx,default=`占位符`”} 
改成@string/xx引用的方式即可

评价:(但是这种需要改动的东西太多,一不留神就会错过中文的空格之类的东东,这样改动起来很难)

方案2:由于出现这种问题是java编码的问题,所以这里我们可以从根源上进行一下设置:在系统环境变量中增加一个变量,变量名为: JAVA_TOOL_OPTIONS, 变量值为:-Dfile.encoding=UTF8,保存,重启电脑使之生效。

评价:(确实是从根源上解决问题啦,但是代码的不规范问题还是在保留着)

所以论开发代码的规范的重要性。如果对你的开发有帮助请给个赞,谢谢。

猜你喜欢

转载自blog.csdn.net/lamboo_cn/article/details/89491001