Unity开发ARCore应用上架Google Play后与三星A23不兼容问题咨询
三星A23上架Google Play后不兼容的排查与修复
1. 修复ARCore深度功能的强制依赖问题
你的Manifest中声明了<uses-feature android:name="com.google.ar.core.depth" />,但三星A23并不支持ARCore Depth API。Google Play会根据uses-feature的强制要求过滤设备,导致不兼容。需要将该功能设置为可选:
<uses-feature android:name="com.google.ar.core.depth" android:required="false" />
2. 检查Unity架构打包设置
三星A23支持arm64-v8a和armeabi-v7a架构,确保Unity Build Settings中勾选了对应架构:
- 打开Unity的Build Settings → Player Settings → Android → Other Settings → Target Architectures
- 至少勾选
ARM64(arm64-v8a)和ARMv7(armeabi-v7a),避免因架构不匹配被过滤
3. 补充ARCore兼容性配置
在Manifest的<application>标签内添加ARCore的meta-data,明确ARCore为可选依赖(如果你的应用支持非AR模式):
<meta-data android:name="com.google.ar.core" android:value="optional" />
注:三星A23支持ARCore基础功能,但不支持深度功能,因此深度功能必须设为可选。
4. 调整存储权限适配Target API 31
Target API 31(Android 12)中WRITE_EXTERNAL_STORAGE权限已被废弃,若该权限非必需,建议直接移除;若需兼容旧版本,添加maxSdkVersion限制:
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" android:maxSdkVersion="30" />
修改后的完整Manifest示例
<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android"> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" android:maxSdkVersion="30" /> <uses-permission android:name="android.permission.CAMERA" /> <uses-feature android:name="com.google.ar.core.depth" android:required="false" /> <uses-feature android:glEsVersion="0x00030000" /> <application android:icon="@drawable/app_icon" android:label="@string/app_name"> <meta-data android:name="com.google.ar.core" android:value="optional" /> <activity android:name="jp.fantom1x.plugin.android.fantomPlugin.FullPluginOnUnityPlayerActivity" android:label="@string/app_name" android:exported="true" android:screenOrientation="sensorPortrait" android:launchMode="singleTask" android:theme="@android:style/Theme.DeviceDefault.Light.NoActionBar.Fullscreen" android:configChanges="fontScale|keyboard|keyboardHidden|locale|mnc|mcc|navigation|orientation|screenLayout|screenSize|smallestScreenSize|uiMode|touchscreen"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> </application> </manifest>
内容的提问来源于stack exchange,提问作者Leoncio Gómez
相关产品推荐
相关产品推荐

