如何使 APK 符合 Google Play 64 位要求?
How to make APK compliant with Google Play 64-bit Requirement?
我知道以前有人问过这个问题,但我仍在努力寻找有关如何正确实现此问题的有效答案。当我将我们的 APK 上传到 Google Play 开发控制台时,我收到以下警告:
我们的应用程序使用三个 jniLib,它们属于以下架构:arm4-v8a、armeabi-v7a 和 x86。单击错误附带的“了解更多信息”link 可针对此问题提供以下解决方案:
但是,在我的 build.gradle 剧照中的默认配置中添加此 ndk.abiFilters 'armeabi-v7a','arm64-v8a','x86'
会出现与上述相同的错误。我有点不知所措,因为我正在遵循 Google 的建议,希望对此事有任何帮助。
这里有一些额外的信息:
- APK 分析器结果
我正在使用 V2(完整 APK 签名)构建签名 APK。
删除 x86 jniLib 允许我将 APK 上传到 Google Play 商店且错误为零,但是,我无法 运行 Android 模拟器,因为 AVD 只支持 x86。
最佳解决方案是:上传到支持 x86 的 Playstore 而不会遇到任何错误,或者上传到没有 x86 库的 Playstore 并且仍然能够 运行 [=51] 内的模拟器=] 工作室。有什么想法吗?
Google Play 管理中心指出,如果您支持 32 位架构,则您必须 也支持相应的 64 位版本。
我看到两个选项:
- 提供
x86_64
版本的库。
- 删除
x86
版本的库并使用可用的 arm
架构 AVD 系统映像。
我会在那里看到另外两个选项...
A) 您必须从发布版本中排除 x86
的 Epson 本机程序集...因为当 x86
存在时,它也会要求 x86_64
。我假设它用于 x86
仿真,但对于调试版本,这不是问题。删除它并使用慢速 ARM 模拟器可能不是解决办法。尝试将其添加到 buildTypes.release
中(以便保留它用于调试目的):
packagingOptions {
exclude "lib/x86/*.so"
}
B) Seiko Epson 会同时为 x86_64
提供本地组装...如果您更新他们的 SDK。
从技术上讲,选项 A 会好得多,因为包装尺寸更小。
我知道以前有人问过这个问题,但我仍在努力寻找有关如何正确实现此问题的有效答案。当我将我们的 APK 上传到 Google Play 开发控制台时,我收到以下警告:
我们的应用程序使用三个 jniLib,它们属于以下架构:arm4-v8a、armeabi-v7a 和 x86。单击错误附带的“了解更多信息”link 可针对此问题提供以下解决方案:
但是,在我的 build.gradle 剧照中的默认配置中添加此 ndk.abiFilters 'armeabi-v7a','arm64-v8a','x86'
会出现与上述相同的错误。我有点不知所措,因为我正在遵循 Google 的建议,希望对此事有任何帮助。
这里有一些额外的信息:
- APK 分析器结果
我正在使用 V2(完整 APK 签名)构建签名 APK。
删除 x86 jniLib 允许我将 APK 上传到 Google Play 商店且错误为零,但是,我无法 运行 Android 模拟器,因为 AVD 只支持 x86。
最佳解决方案是:上传到支持 x86 的 Playstore 而不会遇到任何错误,或者上传到没有 x86 库的 Playstore 并且仍然能够 运行 [=51] 内的模拟器=] 工作室。有什么想法吗?
Google Play 管理中心指出,如果您支持 32 位架构,则您必须 也支持相应的 64 位版本。
我看到两个选项:
- 提供
x86_64
版本的库。 - 删除
x86
版本的库并使用可用的arm
架构 AVD 系统映像。
我会在那里看到另外两个选项...
A) 您必须从发布版本中排除 x86
的 Epson 本机程序集...因为当 x86
存在时,它也会要求 x86_64
。我假设它用于 x86
仿真,但对于调试版本,这不是问题。删除它并使用慢速 ARM 模拟器可能不是解决办法。尝试将其添加到 buildTypes.release
中(以便保留它用于调试目的):
packagingOptions {
exclude "lib/x86/*.so"
}
B) Seiko Epson 会同时为 x86_64
提供本地组装...如果您更新他们的 SDK。
从技术上讲,选项 A 会好得多,因为包装尺寸更小。