You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

ARCore使用Sceneform加载.obj/.gltf模型无显示 报No RCB file错误求助

根因分析

你使用的1.15.0版本官方原生Sceneform仅支持预转换后的.sfb格式渲染资源,无法直接加载.obj/.gltf/.fbx等原始3D模型格式,你直接传入obj文件的Uri后,系统无法识别对应格式的渲染资源,因此抛出No RCB file at uri错误。

可行解决方案

方案1:切换到社区维护版Sceneform(更推荐)

谷歌官方废弃Sceneform项目后,社区已推出持续维护的fork分支,新增了直接加载gltf/glb格式模型的能力,无需提前转换为sfb,且兼容最新版ARCore,修改成本极低:

  1. 替换build.gradle中的Sceneform相关依赖,删除原有3个sceneform、arcore依赖,替换为:
implementation 'com.gorisse.thomas.sceneform:sceneform-ux:1.20.2'
  1. 将你的3D模型导出为.glb格式(可通过免费工具Blender完成导出,选择glTF二进制格式即可),放入assets目录
  2. 修改Uri构造代码,正确读取assets下的glb文件:
// 替换原有Uri.parse("testscene.obj")
selectObject = Uri.parse("file:///android_asset/testscene.glb");
  1. 其余业务逻辑无需修改,即可正常加载模型

方案2:离线转换模型为sfb格式

不想替换依赖的情况下,可使用官方开源的命令行转换工具生成sfb文件,无需安装已废弃的Android Studio插件:

  1. 下载对应操作系统的Sceneform命令行转换工具包
  2. 执行命令转换3D模型为sfb格式,示例如下:
./converter --input testscene.obj --output testscene.sfb
  1. 将生成的.sfb文件放入assets目录,修改Uri指向该sfb文件即可:
selectObject = Uri.parse("testscene.sfb");

补充注意事项

如果保留使用obj格式,需要确保同目录下存放了对应的.mtl材质文件和所有关联的纹理图片,否则即使加载成功也会出现材质丢失、模型显示全白的问题。

内容的提问来源于stack exchange,提问作者MUCHUAN SU

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 21:36:03