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

Android Studio集成ARCore时清单元数据缺失报错求助

解决ARCore支持性检查时的FatalException错误

首先,咱们直接抓错误核心:Application manifest must contain meta-data com.google.ar.core.min_apk_version——这个报错已经把问题说得明明白白,你在AndroidManifest.xml里漏掉了ARCore强制要求的元数据项,而且这个配置和你在build.gradle里设置的minSdkVersion完全是两回事:

  • minSdkVersion定义的是你的应用兼容的Android系统最低版本
  • com.google.ar.core.min_apk_version定义的是你的应用兼容的ARCore服务最低版本,ARCore需要这个值判断设备上的ARCore服务是否能匹配你的应用需求

具体修复步骤

  1. 在AndroidManifest.xml中添加缺失的元数据
    在你的<application>标签内部,已经有了<meta-data android:name="com.google.ar.core" android:value="optional" />,现在再补充下面这行代码:
<meta-data android:name="com.google.ar.core.min_apk_version" android:value="11800000" />

这里的value是根据你使用的ARCore版本1.18.0转换来的:转换规则是主版本号*10000000 + 次版本号*100000 + 补丁版本号*1000,所以1.18.0计算后就是1*10000000 + 18*100000 + 0*1000 = 11800000。

  1. 验证现有配置的正确性
    你的现有配置里:
  • implementation 'com.google.ar:core:1.18.0'依赖版本正确
  • google()仓库配置没问题
  • com.google.ar.core设为optional的配置合理(允许不支持ARCore的设备安装应用)

关于Android Studio的URI未注册提示

这个提示只是编辑器的小bug,和ARCore的报错完全无关,你可以直接忽略它。如果看着不舒服,试试清理Android Studio缓存(File → Invalidate Caches... → Invalidate and Restart)或者更新到最新版本的Android Studio就能解决。

额外优化建议

你的Check_AR()方法用了同步的checkAvailability,虽然在1.18.0版本能运行,但ARCore官方从1.8版本开始就推荐使用异步的checkAvailabilityAsync方法,避免阻塞UI线程,示例代码如下:

ArCoreApk.getInstance().checkAvailabilityAsync(this, availability -> {
    if (availability.isTransient()) {
        new Handler().postDelayed(this::Check_AR, 200);
    } else {
        Flag_AR = availability.isSupported();
        Log.d("TAG", "Check_AR: " + Flag_AR);
    }
});

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.08 17:57:56