0

我正在使用 OpenFL 构建一个 Android 应用程序以在 Google Play 上分发。我只想针对armv7设备,并且我相信 OpenFL 会armv7- 默认情况下只构建。

但是,在构建 OpenFL 构建系统时,会创建并填充libs/armeabi文件夹而不是libs/armeabi-v7a文件夹。这样做的问题是,这使 Google Play 相信生成的 apk 支持armv5/armv6/armv7,而实际上它只支持armv7. 这意味着我的应用程序从使用旧/不兼容设备的人那里获得了一些 1 星评价。

在这个Github 问题上,Joshua Granick (jgranick) 解释了为什么构建工具会这样做:

哦,顺便说一句,最初我们只尝试了 armeabi-v7,但它无法在某些设备上运行。这就是为什么存在当前行为或使用 armeabi,并且只有在有 armv5/6 版本的情况下才添加 armeabi-v7

我想知道他提到的问题是什么,以及它会影响哪些设备/Android 版本。根据具体情况,可能仍然只进行armv7构建并手动将有问题的设备列入黑名单。

最后一个选择是通过“胖”构建来简单地支持armv5/armv6设备,或者只构建armv5我认为在任何地方都兼容的构建。<architecture>使用文件中的标签非常容易project.xml。如果无法解决 Joshua 提到的问题,我可能会做出权衡。

此外,使用 Google Play 开发人员仪表板,我还可以手动将 armv5/armv6 设备列入黑名单,但对每个应用程序/apk 执行此操作非常耗时。

所以我的问题是:我如何才能armv7使用 OpenFL 构建仅 Android 版本,并让 Google Play 只允许兼容设备,而不会遇到我上面引用的问题?如果那不可能,那么我最好的选择是什么?

以下是我在构建时获得的相关 Google Play apk 详细信息供参考armv7

谷歌玩 armeabi

谢谢!

4

1 回答 1

0

我得到了关于这个GitHub 问题的答案。libs/armeabi某些 armv7 设备或其上的 Android 版本在 apk中没有文件夹时会导致应用程序崩溃。Joshua 解释了这如何导致石灰工具(截至version 1.5.7)设置:

在我的三星 Galaxy S(可能是其他设备)中,除非有“libs/armeabi”文件夹,否则应用程序将无法运行

如果有两个文件夹,它更喜欢 armeabi-v7a 目录,否则无法工作。这就是为什么如果您只针对 armv7,这些工具只使用一个文件夹,如果您同时包含 armv5 和 armv7,则使用这两个文件夹。

我不确定是否有一个好的解决方案,我认为这里的关键点是 Google Play 提交过程,这应该让我们能够解释这一点。

鉴于此,对我有用的解决方案是简单地构建我的应用程序并支持 armv5/armv6 设备。

于 2015-02-04T13:56:07.997 回答