【发布时间】:2021-05-14 13:09:53
【问题描述】:
在将原生 Android Unity 集成版本发布到 Play 商店时遇到问题。我将它作为一个项目从 Unity 中提取出来,并将其作为库迁移到我们的原生应用程序中。
尝试将 .AAB 上传到 Play 商店时,出现以下错误:
This release is not compliant with the Google Play 64-bit requirement.
The following APKs or App Bundles are available to 64-bit devices, but they only have 32-bit native code: [10406]
我已经检查了以下内容:
-
首先,我按照官方指南中的步骤操作:https://developer.android.com/distribute/best-practices/develop/64-bit
-
Unity 版本:2019.4.9f1,Android 播放器设置我选择了 ARMv7 和 ARM64。此版本的 Unity 中没有 x86 选项。脚本后端列为 IL2CPP
-
在 build.gradle 文件中,我列出了:ndk { abiFilters 'armeabi-v7a', 'arm64-v8a' } 因为我们希望同时支持 32 位和 64 位
-
我使用 Android Studio 中的 APK Analyzer 工具来分析应用的 APK 和 AAB 版本。 lib/armeabi-v7a 和 lib/arm64-v8a 文件夹中都列出了相同的 10 个“.so”文件。
-
接下来,我结合使用 apktool 和“file”命令来提取应用程序的 APK 和 AAB 版本的内容,并仔细检查 arm64-v8a 文件夹中的“.so”文件是否位于事实上,64 位架构
-
我测试,如果我在64位设备上直接使用以下命令安装APK版本,是成功的:
% adb install --abi arm64-v8a app.apk Performing Streamed Install Success
我完全没有想法,我确实联系了 Play 商店寻求帮助,但他们在 2 天内没有回复,所以我开始坐立不安了。
有人知道我可能错过了什么吗?
编辑: 忘了说,这也在 app 和 unityLibrary build.gradle 文件中:
packagingOptions {
doNotStrip '*/armeabi-v7a/*.so'
doNotStrip '*/arm64-v8a/*.so'
}
这是一个包含我简化的 gradle 文件的 repo,如果它有帮助的话: https://github.com/azdragon2/unityandroid-stackoverflow-question
谢谢!
【问题讨论】: