我正在使用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详细信息 - 仅限:
谢谢!
答案 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设备。