升级Android Gradle 3.4.0后构建失败问题求助
解决SceneForm资产转换失败的构建问题
我之前处理过类似的兼容问题,结合你的配置和报错信息,这主要是SceneForm 1.9.0与Gradle 3.4.0插件不兼容导致的,同时也需要排查资产文件本身的问题,给你几个一步步的解决方案:
方案1:升级SceneForm到兼容版本
SceneForm 1.9.0是比较旧的版本,对Gradle 3.4+的支持不完善。建议升级到1.15.0及以上版本(这是官方适配新版Gradle插件的稳定版本):
- 修改根目录
build.gradle中的插件依赖:classpath 'com.google.ar.sceneform:plugin:1.15.0' - 修改app模块
build.gradle中的core依赖:implementation 'com.google.ar.sceneform:core:1.15.0'
同步项目后重新构建,大部分兼容问题会直接解决。
方案2:排查并修复资产文件问题
报错指向aim_arrows对应的资产转换失败,先确认单个资产是否有问题:
- 检查
models/aim_triangles/下的aim_triangles.obj、aim_triangles.mat、aim_triangles.sfa文件是否存在,路径大小写是否和配置完全一致(Gradle 3.4对文件路径大小写校验更严格)。 - 用Blender等3D工具打开
aim_triangles.obj,检查是否存在面破损、顶点错误等格式问题;打开aim_triangles.mat,确认里面的纹理路径是否正确指向存在的图片文件。 - 临时注释掉
sceneform.asset('models/aim_triangles/...')这一行,重新构建,如果能成功,说明就是这个资产文件本身的问题,针对性修复即可。
方案3:降级Gradle插件版本
如果暂时不想升级SceneForm,可以把Gradle插件降级到和1.9.0兼容的版本(比如3.3.2):
- 修改根目录
build.gradle中的Gradle插件依赖:classpath 'com.android.tools.build:gradle:3.3.2' - 同步Gradle wrapper版本:修改
gradle/wrapper/gradle-wrapper.properties中的distributionUrl为对应版本,比如:distributionUrl=https\://services.gradle.org/distributions/gradle-5.4.1-all.zip
同步项目后清理缓存再构建。
方案4:清理构建缓存
缓存损坏也可能导致奇怪的转换错误,执行以下操作:
- 在终端运行命令:
./gradlew clean(Windows系统用gradlew clean) - 删除项目根目录下的
.gradle文件夹和app模块的build文件夹 - 重启Android Studio,重新构建项目
方案5:确认Java版本配置
虽然你已经设置了Java 8,但要确保Android Studio使用的JDK是1.8版本:
- 打开
File -> Project Structure -> SDK Location - 检查
JDK Location是否指向JDK 8的安装路径,避免使用JDK 11及以上版本(SceneForm 1.9.0对高版本JDK支持不佳)
内容的提问来源于stack exchange,提问作者Anthony
相关产品推荐
相关产品推荐

