Unity打包App Bundle提示AR Core深度功能设备不支持但APK正常如何解决
问题根因
你搜索不到com.google.ar.core.min_apk_version配置是因为该标签不是你手动写入本地源码的,是AR Core官方SDK在编译打包阶段自动合并注入到AndroidManifest.xml中的。
你把两个AR相关硬件特性的required属性设为false后,系统识别到你的应用不需要强制AR能力,但Manifest中同时存在自动注入的AR Core版本要求元数据、却缺失显式的AR Core依赖声明,两者冲突才触发了如下报错:
尽管已指定元数据标签com.google.ar.core.min_apk_version,但AndroidManifest.xml中缺失ArCore依赖项com.google.ar.core。
解决方案
你可以根据AR功能在你的应用中的定位选择对应处理方案:
- 若AR是你的应用核心必填功能:无需修改
required属性,Galaxy Tab A7本身不支持你用到的AR深度、AR相机特性,本来就不属于你的目标兼容设备范围,之前手动安装APK可正常运行是绕开了Google Play的设备过滤规则,直接按原有配置上传App Bundle即可。 - 若AR是你的应用可选功能,非AR设备也可正常使用其他功能:按以下步骤配置即可:
- 在模块级
build.gradle文件中确保已引入AR Core官方依赖,示例:
dependencies { // 引入最新稳定版AR Core SDK即可 implementation 'com.google.ar:core:1.40.0' }- 在你的项目
AndroidManifest.xml中手动添加以下配置,覆盖SDK自动注入的冲突规则:
<!-- 声明AR Core为可选依赖 --> <uses-library android:name="com.google.ar.core" android:required="false" /> <!-- 显式指定AR Core最低版本要求,避免SDK自动注入的规则冲突 --> <meta-data android:name="com.google.ar.core.min_apk_version" android:value="212600000" /> <!-- 保留你之前修改的两个硬件特性非必填配置 --> <uses-feature android:name="android.hardware.camera.ar" android:required="false" /> <uses-feature android:name="com.google.ar.core.depth" android:required="false" />- 代码层面添加AR能力校验逻辑:每次调用AR相关功能前,先判断当前设备是否支持AR Core,不支持的设备隐藏AR相关入口,避免调用AR代码触发崩溃。
- 打包后验证配置:通过Android Studio顶部菜单栏
Build -> Analyze APK打开生成的App Bundle或者APK,查看合并后的AndroidManifest.xml是否包含上述所有配置,确认无误后再上传到Google Play控制台,即可看到Galaxy Tab A7已被纳入支持设备范围。
- 在模块级
内容的提问来源于stack exchange,提问作者Sergey92zp
相关产品推荐
相关产品推荐

