在build.gradle文件中添加以下代码:
android {
...
// Enabling split APKs support
bundle {
language {
enableSplit = false
}
density {
enableSplit = true
}
abi {
enableSplit = true
}
}
// Enabling ARCore support with multi-APK
flavorDimensions "default"
productFlavors {
arcore {
dimension "default"
versionCode 101010100 // VersionCode for ARCore APK.
versionName "ARCore 1.10.1"
manifestPlaceholders = [arcoreEnabled: "true"]
}
noarcore {
dimension "default"
versionCode 101010000 // VersionCode for non-ARCore APK.
versionName "noARCore"
manifestPlaceholders = [arcoreEnabled: "false"]
}
}
...
aaptOptions {
noCompress "tflite"
noCompress "lite"
}
}
这将禁用语言分裂,但启用屏幕密度和ABI分裂。在此示例中,我们同时启用了ARCore支持,并为ARCore APK和非ARCore APK设置了不同的版本号。
需要注意的一点是,ARCore应该在每个APK中具有相同的版本,而且版本大小应该尽量小,以减少用户下载时的数据量。
dependencies {
// ARCore should be included in the module that can use AR.
implementation "com.google.ar:core:1.20.0"
// AR Foundation
implementation "com.unity.xr.arfoundation:arfoundation:3.1.0"
implementation "com.unity.xr.arcore:arcore-sdk:3.1.0"
// ARCore Extensions
implementation "com.unity.xr.arcoreextensions:core:1.0.0-preview.21"
implementation "com.unity.xr.arcoreextensions:face:1.0.0-preview.21"
}
然后,在AndroidManifest.xml中添加以下代码来启用ARCore和ARKit的兼容性:
最后,在实现AR Foundation的Activity中,将以下代码添加到onCreate()方法中:
if (!isSupportedDevice