Unity Android 64 位 - 不兼容错误
Unity Android 64 Bit - Not Compliant Error
运行 是关于原生 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 分析器工具来分析应用程序的 APK 和 AAB 版本。 lib/armeabi-v7a 和 lib/arm64-v8a 文件夹中列出了相同的 10 个“.so”文件。
接下来,我结合使用 apktool 和 'file' 命令来提取应用程序的 APK 和 AAB 版本的内容,并仔细检查“.so”文件arm64-v8a 文件夹中实际上是 64 位架构
我测试在64位设备上直接使用以下命令安装APK版本是成功的:
% adb install --abi arm64-v8a app.apk
Performing Streamed Install
Success
我正式失去了想法,我确实联系了 Play 商店寻求帮助,但他们在 2 天内没有回应,所以我很烦躁。
有人知道我可能错过了什么吗?
编辑:
忘了说了,这个也在app和unityLibrary里面 build.gradle files:
packagingOptions {
doNotStrip '*/armeabi-v7a/*.so'
doNotStrip '*/arm64-v8a/*.so'
}
这是一个包含我简化的 gradle 文件的存储库,如果有帮助的话:
https://github.com/azdragon2/unityandroid-Whosebug-question
谢谢!
问题源于我使用的 Unity 库中包含的“.bc”文件。这些 bc 文件始终被解释为 32 位。您必须升级您正在使用的包含这些文件的库。
您可以通过 运行 在您的 APK 或 AAB 文件上执行以下命令来确定您是否遇到同样的问题:
zipinfo -1 app.apk | grep \.bc$
运行 是关于原生 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 分析器工具来分析应用程序的 APK 和 AAB 版本。 lib/armeabi-v7a 和 lib/arm64-v8a 文件夹中列出了相同的 10 个“.so”文件。
接下来,我结合使用 apktool 和 'file' 命令来提取应用程序的 APK 和 AAB 版本的内容,并仔细检查“.so”文件arm64-v8a 文件夹中实际上是 64 位架构
我测试在64位设备上直接使用以下命令安装APK版本是成功的:
% adb install --abi arm64-v8a app.apk Performing Streamed Install Success
我正式失去了想法,我确实联系了 Play 商店寻求帮助,但他们在 2 天内没有回应,所以我很烦躁。
有人知道我可能错过了什么吗?
编辑: 忘了说了,这个也在app和unityLibrary里面 build.gradle files:
packagingOptions {
doNotStrip '*/armeabi-v7a/*.so'
doNotStrip '*/arm64-v8a/*.so'
}
这是一个包含我简化的 gradle 文件的存储库,如果有帮助的话: https://github.com/azdragon2/unityandroid-Whosebug-question
谢谢!
问题源于我使用的 Unity 库中包含的“.bc”文件。这些 bc 文件始终被解释为 32 位。您必须升级您正在使用的包含这些文件的库。
您可以通过 运行 在您的 APK 或 AAB 文件上执行以下命令来确定您是否遇到同样的问题:
zipinfo -1 app.apk | grep \.bc$