发布Android应用程序 - 区分APK详细信息 - “本机平台” = 无?

11

编辑:

根据@marbarfa的答案,这似乎与第三方库有关。详细解释请查看他的回答和评论。

感谢marbarfa!


在使用新的Google Play开发者控制台时,我遇到了一个奇怪的情况: 最近我切换到了Facebook的Fresco图像加载库,这可能解释了我的问题。

(类似的问题在此处报告:Google play,发布应用程序更新,与“本地平台”有问题

在将beta构建推广到生产环境的过程中,我遇到了这个问题:

在新的Google Play控制台下,发布管理/应用发布页面,当我在“新版本发布至生产环境(从beta 2.2.0推广)”时,我看到这个:

“Native platforms”的值从arm64-v8a、armeabi、armeabi-v7a、x86、x86_64更改为无

Google Play控制台"之前的APK"页面代码摘录:

Differentiating APK details
Native platforms

arm64-v8a, armeabi, armeabi-v7a, x86, x86_64

Google Play控制台页面“新APK”的代码摘录(与Facebook的Fresco一起使用的Beta版本):

Differentiating APK details
Native platforms

none

我更新了所有的应用程序(10个!),似乎一切正常(支持设备的数量仍然是11434),但我仍不太舒服,因为我不明白到底发生了什么。

有人可以解释一下吗?

谢谢!


你解决了吗? - marbarfa
目前还没有。但是目前一切似乎都很好。 - Pascal
1个回答

14

我尽可能简单地解释问题:

当您为某些体系结构(例如:arm64-v8a、armeabi、armeabi-v7a、x86、x86_64)进行拆分,但这些体系结构上没有任何本机实现时,该问题似乎会发生。

例如,在我的情况下是mips和mips64。

Play商店似乎根据lib/$arch文件夹识别apk支持的架构。因此,如果apk缺少此文件夹,则playstore会将“none”显示为“native platform”(您可以通过解压apk来检查此内容)。

问题在于“none”被解释为“支持所有架构”,然后apk将基于versionCode下载。

如果您有一个带有“native platform”作为“none”且版本号高于另一个具有本机实现的apk,则用户最终将下载具有更高versionCode的apk。根据应用程序或配置,这将正常工作或不起作用。

问题源于gradle如何拆分apk,您必须小心定义拆分的versionCode。


所以也许我删除了一些旧的空的lib/$arch文件夹..谢谢:我会向后移动版本来检查! - Pascal
3
@Pascal 不必要。以我的情况为例,我使用了 card.io 和 fresco 库,在新版本中我不再使用 card.io 了,它是唯一一个具有 mips 和 mips64 原生实现的库。 - marbarfa

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接