执行./gradlew命令时出现gradle构建失败异常,求解决方案
兄弟,我懂你这种被Gradle构建错误卡得头疼的感觉!你已经试了清理缓存、删Gradle文件夹这些常规操作还没解决,那咱们来深挖几个容易被忽略的点:
检查本地Gradle版本与项目要求是否匹配
打开项目根目录下的gradle/wrapper/gradle-wrapper.properties文件,查看distributionUrl里指定的Gradle版本(比如https\://services.gradle.org/distributions/gradle-7.5-bin.zip),确认你本地有没有这个版本。如果没有,要么手动下载对应版本放到~/.gradle/wrapper/dists目录,要么修改这个URL到你本地已有的兼容版本(注意要和Android Gradle Plugin版本匹配,比如AGP 7.4对应Gradle 7.5左右)。排查依赖冲突或损坏
- 先执行
./gradlew dependencies命令,看看输出里有没有红色的冲突提示,比如某个依赖的多个版本共存。如果有,可以在build.gradle里用force强制指定一个版本,或者用exclude排除冲突的模块。 - 检查本地maven仓库里的依赖包是否损坏,找到
~/.gradle/caches/modules-2/files-2.1目录,删掉对应依赖的文件夹,然后重新执行构建命令让Gradle重新下载。
- 先执行
检查Java版本是否符合要求
Gradle不同版本对Java版本有要求,比如Gradle 7.x需要Java 11及以上。执行java -version看看当前Java版本,如果不匹配,可以在项目的gradle.properties里添加org.gradle.java.home=/path/to/your/java11来指定项目使用的Java路径。查看更详细的错误日志
只看基础堆栈跟踪可能不够,试试执行./gradlew build --stacktrace --info命令,这个会输出更详细的日志,能帮你定位到具体是哪个任务失败、哪个依赖出问题或者哪个配置错误。比如如果是资源编译失败,日志里会明确指出哪个xml或者图片文件有问题。检查项目配置文件的语法错误
有时候build.gradle(包括模块级和项目级)里的语法错误很隐蔽,比如少了个逗号、引号不配对,或者使用了已废弃的语法。可以把配置文件复制到Android Studio里,看看有没有红色的语法提示,尤其是自定义的任务或者依赖闭包部分。
内容的提问来源于stack exchange,提问作者Aveek

