jptsetung
jptsetung

Reputation: 9157

Google play 64 bits error despite apk is provided with all native libraries in 64 and 32 bits

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.

Upvotes: 1

Views: 247

Answers (1)

Jerome
Jerome

Reputation: 1281

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.

Upvotes: 1

Related Questions