OpenFL Android在Google Play上构建和过滤armv5 / armv6设备

时间:2015-01-31 09:51:39

标签: android android-ndk google-play openfl nme

我正在使用OpenFL构建Android应用以在Google Play上发布。我想只定位armv7设备,我相信OpenFL会armv7 - 只是默认构建。

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

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

  

哦和BTW,最初我们只尝试过armeabi-v7,但它无法在某些设备上运行。这就是当前行为或使用armeabi的原因,并且只有在存在armv5 / 6版本时才添加armeabi-v7

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

最后一个选择是通过执行“胖”构建来简单地支持armv5/armv6设备,或者仅构建armv5,我认为它在任何地方都是兼容的。使用<architecture>文件中的project.xml标记非常简单。如果没有办法解决约书亚所提到的问题,那么我可能会采取这种权衡。

同样使用Google Play开发人员信息中心,我也可以手动将armv5 / armv6设备列入黑名单,但为每个app / apk执行此操作会非常耗时。

所以我的问题是:如何制作armv7 - 仅使用OpenFL进行Android版本制作并让Google Play仅允许兼容设备,而不会遇到上述问题?如果那是不可能的,那么我最好的选择是什么?

此处参考的是我在构建armv7时获得的相关Google Play apk详细信息 - 仅限:

google play armeabi

谢谢!

1 个答案:

答案 0 :(得分:0)

我得到了GitHub issue的答案。当apk中没有libs/armeabi文件夹时,一些armv7设备或其上的Android版本会导致应用程序崩溃。约书亚解释了这是如何导致石灰工具(从version 1.5.7)设置的:

  

在我的三星Galaxy S(可能是其他设备)中,应用程序无法运行,除非有一个&#34; libs / armeabi&#34;夹

     

如果有两个文件夹,则它更喜欢armeabi-v7a目录,但无法正常工作。这就是为什么如果你只定位armv7,工具只使用一个文件夹,如果同时包含armv5和armv7,则使用两个文件夹。

     

我不确定这是一个很好的解决方案,我认为这里的关键点是Google Play提交流程,应该允许我们对此进行说明。

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