Android开发常见的报错问题(持续更新记录)

一、gradle 同步报 Caused by: java.lang.NoSuchFieldError: ASCII的错误

场景:之前又一个2018年那时候的项目,但不记得那时候的Android studio的版本了,目前是2022年的AS版本是4.2.2版本。运行那个2018年的项目就无法跑起来了,报错就是提示ASCII的错误,当时就在想是不是项目中包含了中文路径,或者非法的字符,一顿查一顿改都没用。

解决:升级gradle的版本:gradle之前版本是3.2.0更新到高一些的版本就可以了。(可以找一个能跑起来的项目看看gradle版本。)

project项目级别的gradle文件:
classpath 'com.android.tools.build:gradle:x.x.x'
同时,gradle-wrapper.properties更新到5.6.4版本:
distributionUrl=https://services.gradle.org/distributions/gradle-5.6.4-all.zip


二、AS编译报错:line 1:0 mismatch input '?' expecting {COMMENT, SEA_WS, '<',PI}

场景:从github拉了一个项目,从项目中拷贝了一个xml文件到我的正常的可编译的项目中,拷进去后编译运行报错如下:

 Caused by: org.gradle.api.tasks.TaskExecutionException: Execution failed for task ‘:app:mergeDebugResources’.
……
Caused by: java.lang.NullPointerException
at android.databinding.tool.store.LayoutFileParser.parseOriginalXml(LayoutFileParser.java:128)
相关的报错信息直指向这个xml文件引发的空指针(因为可以点击错误信息跳转到这个xml文件,我忘记截图了)。第一次遇到因为一个xml文件(文件没有报错信息,文件表面看上去没任何问题)看到空指针,一脸懵。

在stackoverflow上找到了最终原因:android studio UTF-8 BOM format 的问题,如图

知道是 UTF-8 BOM format 的问题,说实话我也不知道这个BOM是啥,可能就是一种编码格式吧。
解决方案:右键项目->Remove Bom(菜单最底部有这个选项,点击即可),然后重新运行编译就可以了。

猜你喜欢

转载自blog.csdn.net/sunbinkang/article/details/126329011