【问题标题】:Force app to run 32 bit architecture for 64 bit devices? [duplicate]强制应用程序为 64 位设备运行 32 位架构? [复制]
【发布时间】:2020-03-20 12:12:57
【问题描述】:

我有一个 32 位架构的 .so 文件的 android 应用程序。我没有 2 个 .so 文件的本机代码。我的应用程序出现了一些问题,因此我已编辑并尝试在 Play 商店中更新。由于不受支持的 64 位架构,我收到一些无法上传的错误消息。因此,请从获取所有可能的解决方案中获取。我犯了一个重大错误,例如我从 32 位体系结构中复制了一些文件并将其放入 64 位库中。成功我上传到游戏商店。但是当我运行时它达到了设备的 64 位体系结构,并且我收到类似“它没有 64 位代码”的错误。

  1. 由于缺少文件,我无法从本机代码生成 .so 文件。

  2. 我尝试保留我的旧 apk,但由于我在商店中错误的新更新,这是不可能的。

是否可以强制应用程序为 64 位设备运行 32 位架构并接受 google 的最新政策规则?

【问题讨论】:

  • 为什么要复制粘贴问题?
  • @sanjeev 这些解决方案在谷歌关于 64 位合规性的重大更新后无效
  • 正如对重复问题的回答所说,您的应用程序在 64 位设备上作为 32 位应用程序运行的唯一方法是它仅包含 32 位本机库。由于在 Google Play 上发布时不再允许这样做,因此您的应用现在将作为 64 位应用在 64 位设备上运行,并且您在 64 位文件夹中提供的本机库因此必须是实际的 64 位库.
  • 他也在 AndroidDev 支持服务中问过这个问题,我们已经告诉他这是不可能的但他不听。

标签: android android-ndk java-native-interface


【解决方案1】:
  1. 无法在 64 位环境中加载和运行 32 位库。在 arm64-v8a 文件夹中有库,您将应用标记为 64 位。

  2. 很快,Android 可能会完全放弃对 32 位库的支持,因此如果您希望您的应用程序能够持续使用几个月以上,您别无选择,只能寻找为 arm64 构建的替代库。或者,也许您可​​以在 Java 中实现相同的逻辑。

【讨论】:

  • 谢谢,@Alex.Awaited for your reply.我从 android NDK 主题中看到了很多你的答案。我试图从内部存储动态加载 System.Load() 中的 .so 文件。正如你在我提供 arm 库时提到的那样。它正在搜索 64 位代码。
  • 该要求不适用于:明确针对 Wear OS 或 Android TV 的 APK 或应用程序包,它们是目前不支持 64 位代码的外形尺寸。未分发到运行 Android 9 Pie 或更高版本的设备的 APK 或应用程序包。从官方文档中我发现了这些点。如果我的目标设备低于 android pie,那么我可以将 apk 更新到商店中吗?只是为了替代临时解决方案有时间开发 64 位代码,直到 2020 年 8 月新更新。android-developers.googleblog.com/2019/01/…
  • 我不知道如何解释“未分发到运行 Android 9 Pie 或更高版本的设备”这句话。 Google Play Guide 表示,当您上传 APK 时,它需要满足 Google Play 的目标 API 级别要求。新应用和应用更新都必须至少面向 Android 9(API 级别 28)。.
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-06-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-06-26
  • 2012-10-23
相关资源
最近更新 更多