模拟器运行raw_depth_java提示不支持ARCore Raw Depth API闪退怎么办
根因说明
Android 10.0 x86架构的Google Play模拟器镜像本身未集成ARCore Raw Depth API所需的虚拟深度传感器驱动,仅安装Google Play Services for AR无法补全底层能力支持,应用触发能力校验失败后会主动调用退出逻辑,表现为弹窗后闪退。
可执行解决步骤
- 替换合规模拟器镜像
删除现有模拟器,新建虚拟设备时选择Pixel 3及以上的硬件配置,系统镜像必须选Android 12 (API 31) 及以上版本的x86_64架构Google Play镜像,32位x86镜像、API 31以下版本镜像均不支持Raw Depth虚拟能力。 - 校验模拟器AR相关配置
启动新模拟器后,点击侧边栏三点按钮打开扩展控制面板:- 进入
Settings>Advanced,确认后置摄像头选择的是VirtualScene,不要选Webcam或者None - 进入
Google Playtab,将Google Play Services for AR更新到最新正式版,不要使用镜像预装的旧版本
- 进入
- 适配demo的模拟器调试逻辑(若换镜像后仍弹窗)
打开demo中能力校验的入口代码(通常在MainActivity.java的AR会话初始化段),修改强制校验逻辑,避免模拟器环境下直接退出:
该修改仅用于本地调试,正式发布版本需移除非必要的模拟器判断逻辑。// 新增模拟器环境判断 boolean isRunningOnEmulator = Build.FINGERPRINT.contains("generic") || Build.MODEL.contains("Emulator") || Build.BRAND.startsWith("generic"); Config config = new Config(session); if (isRunningOnEmulator) { // 模拟器环境下回退到自动深度模式,使用虚拟深度数据 config.setDepthMode(Config.DepthMode.AUTOMATIC); } else { // 真机环境保留原Raw Depth校验逻辑 if (!session.isDepthModeSupported(Config.DepthMode.RAW_DEPTH_ONLY)) { messageSnackbarHelper.showError(this, "This device does not support the ARCore Raw Depth API."); finish(); return; } config.setDepthMode(Config.DepthMode.RAW_DEPTH_ONLY); } session.configure(config); - 重新编译安装
先卸载模拟器中已安装的旧版demo,在Android Studio中执行Build > Clean Project后重新运行即可。
补充说明
模拟器输出的Raw Depth数据为虚拟场景生成的模拟数据,精度、效果和真机存在明显差异,仅可用于业务流程调试,实际深度效果验证必须使用通过ARCore认证、支持Raw Depth API的物理设备。
内容的提问来源于stack exchange,提问作者Wavegunner232
相关产品推荐
相关产品推荐

