jrend
jrend

Reputation: 1102

How to make APK compliant with Google Play 64-bit Requirement?

I know this question has been asked before, but I am still struggling to find a functioning answer on how to properly achieve this. When I upload our APK to the Google Play dev console, I get the following warning:

Error message from Google play console

Our application uses three jniLibs that fall into the following architectures: arm4-v8a, armeabi-v7a, and x86. Clicking the Learn More link attached to the error gives the following solution to this problem:

Adding ndk.abifilters to build.gradle

However, adding this ndk.abiFilters 'armeabi-v7a','arm64-v8a','x86' in my default config in my build.gradle stills gives the same error referenced above. I am kind of lost on this as I am following what Google recommends and would appreciate any help on the matter.

Here's some additional information:

APK Analyzer Results

enter image description here

An optimal solution would either be: Upload the to the playstore with the x86 support without encountering any errors or upload to the Playstore without the x86 library and still be able to run the emulator within Android Studio. Any ideas?

Upvotes: 3

Views: 2577

Answers (2)

Martin Zeitler
Martin Zeitler

Reputation: 76799

I'd see two whole other options there ...

A) You'd have to exclude that Epson native assembly for x86 from the release build... because when x86 is present, it will also demand x86_64. I'd assume it is there for x86 emulation, but for debug builds this isn't the problem. Removing it and using a slow ARM emulator might not be the answer. Try adding this into buildTypes.release (in order to keep it for debugging purposes):

packagingOptions {
    exclude "lib/x86/*.so"
}

B) Seiko Epson would meanwhile offer native assembly for x86_64 ...if you'd update their SDK.


Technically speaking, option A would be a whole lot better, because of a smaller package size.

Upvotes: 4

veritas1
veritas1

Reputation: 9190

Google Play Console states that if you support a 32-bit architecture, you must also support the corresponding 64-bit version.

I see two options:

  1. Provide the x86_64 versions of your libs.
  2. Remove the x86 version of your libs and use an arm architecture AVD system image, which are available.

enter image description here

Upvotes: 3

Related Questions