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(菜单最底部有这个选项,点击即可),然后重新运行编译就可以了。

三、Could not resolve com.android.tools.build:gradle:7.4.1

今天打开AS的一个项目,遇到如上标题的gradle报错,截图如下:

 我的AS版本:

gradle版本:

 项目的build.gradle:

 问题所在:是因为jdk的版本不对,是最新的AndroidStudio 所用的gradle需要使用jdk11才能构建 ,因此要更改AndroidStudio的jdk版本。

解决办法:File -> ProjectStructure -> Gradle Setting . -> Gradle JDK

 

 

 重新同步一下gradle就好了。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值