构建ARCore hellosceneform示例时遇"Error converting asset"错误求助
我之前在搭建ARCore的hellosceneform示例时,也碰到过一模一样的“Error converting asset”错误,折腾了好一阵才找到解决办法,给你整理了一套靠谱的步骤,按顺序试应该能搞定:
先排查基础环境兼容性
- 确保你的Android Studio是最新稳定版,旧版本的Gradle插件和Sceneform/ARCore的适配性很差。可以通过顶部菜单栏的
Help > Check for Updates一键更新。 - 确认本地安装了**Android 10 (API 29)**及以上的SDK平台,hellosceneform对最低API版本有要求,低于29的话很容易出资源转换问题。打开
Tools > SDK Manager,在SDK Platforms标签下检查并安装对应版本。 - 核对ARCore与Sceneform的依赖版本:项目根目录的
build.gradle(Project级)和模块级的build.gradle里,两者的版本必须完全一致,比如都用1.17.1:
项目级build.gradle:
模块级dependencies { classpath 'com.google.ar.sceneform:plugin:1.17.1' }build.gradle:implementation 'com.google.ar.core:core:1.17.1' implementation 'com.google.ar.sceneform.ux:sceneform-ux:1.17.1'
解决资源转换错误的核心操作
- 清理并重建项目:这是解决缓存问题的万能第一步,点击顶部菜单栏的
Build > Clean Project,等待清理完成后再选Build > Rebuild Project。很多时候就是Gradle缓存的旧资源导致的转换失败。 - 检查示例模型文件:hellosceneform自带的
sampledata目录下有个andy.obj模型,如果这个文件损坏或者格式有问题,也会触发转换错误。可以尝试替换成一个简单的GLB/OBJ模型,或者重新从官方示例仓库拉取完整的模型文件。 - 禁用增量资源处理:在模块级的
build.gradle里添加以下配置,关闭增量构建能避免很多资源转换时的冲突:android { ... aaptOptions { noCompress 'obj', 'mtl', 'glb', 'gltf' // 避免压缩3D资源文件 cruncherEnabled = false // 禁用资源 crunch 处理 } } - 核对Gradle版本:Android Gradle Plugin和Gradle本身的版本必须匹配,比如用AGP 7.0+的话,Gradle要对应7.0+。可以在
gradle/wrapper/gradle-wrapper.properties里查看并修改:distributionUrl=https\://services.gradle.org/distributions/gradle-7.0.2-all.zip
额外的排查细节
- 确认设备支持ARCore:要么用官方列表里的ARCore物理设备,要么用ARCore模拟器镜像。如果用模拟器,需要在
AVD Manager里创建一个支持AR的虚拟设备,并且安装对应版本的ARCore模拟器APK。 - 检查Manifest权限:确保
AndroidManifest.xml里已经添加了ARCore必需的权限,少了权限也可能间接导致资源转换异常:<uses-permission android:name="android.permission.CAMERA" /> <uses-feature android:name="android.hardware.camera.ar" android:required="true" />
内容的提问来源于stack exchange,提问作者redpearl
相关产品推荐
相关产品推荐

