发布Android应用程序 - 区分APK详细信息 - "native platform"= none?

Pas*_*cal 8 android android-manifest developer-console

编辑:

根据Per @marbarfa的回答,这似乎与第三方图书馆有关.阅读他的回答和评论以获得完整的解释.

谢谢marbarfa!


使用新的Google Play开发者控制台,我面临一个奇怪的情况:我最近切换到Facefbook的壁画图像加载库,这可能解释了我的问题.

(这里可能有类似的问题:谷歌播放,发布应用更新,问题'原生平台')

在将beta版本升级到生产的框架中,我遇到了这样的问题:

在新的Google Play控制台上,在发布管理/应用程序版本下,在"新版本到生产(从Beta 2.2.0推广)"中,我看到了这一点

"原生平台"的价值从arm64-v8a,armeabi,armeabi-v7a,x86,x86_64变为零!

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

Differentiating APK details
Native platforms

arm64-v8a, armeabi, armeabi-v7a, x86, x86_64
Run Code Online (Sandbox Code Playgroud)

谷歌Play控制台页面代码摘录为"新APK"(与Facebook的壁画的Beta版):

Differentiating APK details
Native platforms

none
Run Code Online (Sandbox Code Playgroud)

我更新了我的所有(10!)应用程序,它似乎没问题(支持的设备数量是相同的,即11434),但是,我仍然不清楚不明白究竟发生了什么.

有人可以解释一下吗?

谢谢!

mar*_*rfa 12

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

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

例如,在我的例子中是mips和mips64.

Play商店似乎认识到基于该lib/$arch文件夹的apk支持的架构.因此,如果apk缺少此文件夹,则playstore将" none " 显示为" native platform "(您可以通过解压缩apk来检查).

问题是" none "被解释为" 支持所有架构 ",然后将根据versionCode下载apk.

如果你有一个带有" native platform " 的apk 作为" none ",其中versionCode高于另一个有本机实现的版本,那么用户将最终下载带有更高版本Code的apk.根据应用程序或配置,这将正常工作.

问题是关于gradle如何拆分apks产生的,你必须小心如何为你的拆分定义versionCode.

  • @Pascal没有必要.以我的情况为例,我使用了card.io和fresco库,在新版本中我不再使用card.io了,这是唯一一个拥有mips和mips64本机实现的库. (2认同)