Publishing Android Application - Data Differentiation APK - "native platform" = no?

Edit:

As Per @ marbarfa's answer , it looks like third party libraries. Read his answer and comment for a full explanation.

Thank you marbarfa!


Using the new Google Play Developer Console I ran into a weird situation: I recently switched to the Facefbook mural image loading library and that might explain my problem.

(possibly a similar issue described here: google, posting app update, release with "Native Platforms" )

As part of pushing the beta build towards production, I ran into this:

On the new Google Play Console under Release Management / App release, when under "New production version (promoted from beta 2.2.0)", I see this that

Native Platforms changed from arm64-v8a, armeabi, armeabi-v7a, x86, x86_64 none !

Code snippet of Google Play Console page for "previous APK":

Differentiating APK details
Native platforms

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

      

Code snippet from Google Play Console page for "new APK" (beta with Facebook mural):

Differentiating APK details
Native platforms

none

      

I have updated all my (10!) Apps and everything seems to be fine (the number of supported devices is the same, i.e. 11434), but still I'm not very comfortable not understanding what exactly happened.

Can someone please explain?

Thank!

+7


source to share


2 answers


I will try to explain the problem as simply as possible:

The problem arises when you split for some architectures (ex:) arm64-v8a, armeabi, armeabi-v7a, x86, x86_64

, but you don't have a built-in implementation on those architectures.

For example, in my case there were mips and mips64.

Play Store seems to recognize the architecture supported by the folder based apk lib/$arch

. So, if the apk is missing this folder, the playstore shows "none" as "native platform" (you can check this by unpacking the apk).



The problem is that "none" is interpreted as "all architectures are supported" and then the apk will be loaded based on the versionCode.

If you have an apk with "native platform" as "none" with a higher version code than another that has its own implementation, the user will eventually download the apk with the higher version code. Depending on the application or configuration, this will work fine or not.

The problem comes from the way gradle breaks apks and you have to be careful about how you define versionCode for your sections.

+11


source


In addition to the explanation from marbarfa in the build.gradle, I deleted the arm64-v8a, armeabi-v7a, x86 and x86_64 folders that were my problem.



packagingOptions {
    exclude  'lib/arm64-v8a/*'
    exclude  'lib/arm64-v8a/'
    exclude  'lib/armeabi-v7a/*'
    exclude  'lib/armeabi-v7a/'
    exclude  'lib/x86/*'
    exclude  'lib/x86/'
    exclude  'lib/x86_64/*'
    exclude  'lib/x86_64/'
    return true
}

      

0


source







All Articles