1

I'm submitting an apk to goole play that seems perfectly 64 bits compliant, it has all native libraries provided in 32 bits and 64 bits. But I still get this error when trying to deploy the apk in the gogole play console :

This release is not compliant with the Google Play 64-bit requirement

The following APKs or App Bundles are available to 64-bit devices, but they only have 32-bit native code: 2.

Include 64-bit and 32-bit native code in your app. Use the Android App Bundle publishing format to automatically ensure that each device architecture receives only the native code that it needs. This avoids increasing the overall size of your app. Learn More

Here is a screenshot of native libraries in the apk :

enter image description here

This apk seems to be perfectly 64 bits compliant to me, I'm really stuck on this, any help or idea very appreciated.

[edit 2019 11 14] After comment from following comment from Robert, I checked all 10 .so libraries with the tool arm-linux-androideabi-readelf provided by the ndk.

I used these 2 commands :

arm-linux-androideabi-readelf -h armeabi-v7a/* 

which outputs 10 ELF headers looking like this :

File: armeabi-v7a/libVuforia.so
ELF Header:
  Magic:   7f 45 4c 46 01 01 01 00 00 00 00 00 00 00 00 00 
  Class:                             ELF32
  Data:                              2's complement, little endian
  Version:                           1 (current)
  OS/ABI:                            UNIX - System V
  ABI Version:                       0
  Type:                              DYN (Shared object file)
  Machine:                           ARM
  Version:                           0x1
  Entry point address:               0x0
  Start of program headers:          52 (bytes into file)
  Start of section headers:          17252004 (bytes into file)
  Flags:                             0x5000200, Version5 EABI, soft-float ABI
  Size of this header:               52 (bytes)
  Size of program headers:           32 (bytes)
  Number of program headers:         8
  Size of section headers:           40 (bytes)
  Number of section headers:         28
  Section header string table index: 27

And :

arm-linux-androideabi-readelf -h arm64-v8a/*  

which outputs 10 ELF headers looking like this :

File: arm64-v8a/libVuforia.so
ELF Header:
  Magic:   7f 45 4c 46 02 01 01 00 00 00 00 00 00 00 00 00 
  Class:                             ELF64
  Data:                              2's complement, little endian
  Version:                           1 (current)
  OS/ABI:                            UNIX - System V
  ABI Version:                       0
  Type:                              DYN (Shared object file)
  Machine:                           AArch64
  Version:                           0x1
  Entry point address:               0x10f3a0
  Start of program headers:          64 (bytes into file)
  Start of section headers:          27138992 (bytes into file)
  Flags:                             0x0
  Size of this header:               64 (bytes)
  Size of program headers:           56 (bytes)
  Number of program headers:         8
  Size of section headers:           64 (bytes)
  Number of section headers:         26
  Section header string table index: 25

That seems to confirm that the 10 .so libraries are correctly provided in 32 and 64 bits. Still stuck, any help very appreciated.

jptsetung
  • 9,064
  • 3
  • 43
  • 55
  • Unzip the APK and check each .so file for the ABI: https://stackoverflow.com/questions/22620667 May be there is a armv7 abi file in the armv8a abi folder? – Robert Nov 12 '19 at 18:21
  • Thx for the idea, just checked all my .so with the tool arm-linux-androideabi-readelf and they all use the cpu architecture they're supposed to use : / – jptsetung Nov 14 '19 at 14:52
  • Then everything should be fine according to the [Google Play 64-bit requirement](https://developer.android.com/distribute/best-practices/develop/64-bit). Or do you have libs for other architectures not visible in the screen shot? – Robert Nov 14 '19 at 15:56
  • Actually we tried several combinations, we submitted only with arm 32/64, then we tried with both arm and x86, but nothing works. We tried with multiple apks (one for each architecture), and on universal apk embedding all architectures. We've opened a ticket because that seems a weird problem. I've submitted very similar apps without any problems before... – jptsetung Nov 14 '19 at 16:00
  • Same problem here, did you get some update for your ticket ? – Jerome Dec 04 '19 at 13:42
  • @Jerome, see accepted answer, it was my problem too, an old retained apk in the console. – jptsetung Dec 05 '19 at 13:12

1 Answers1

1

I found a solution (for my case - maybe the same as yours)

In the Dev console, I had an old apk which was set as "retained" (in 32bits, for old Android devices : 14+ to 19). Disabling it allowed me to successfully deploy my new bundle.

Hope it can help.

Jerome
  • 1,153
  • 1
  • 17
  • 28