Apk Upload error in playstore - 64 bit warning

PPV picture PPV · Aug 20, 2019 · Viewed 15.3k times · Source

I am using this implementation: 'com.google.vr:sdk-panowidget:1.160.0' in order to show 360 image, but I get the error below; while uploading app to play store:

Error
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: 130.

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

Note: The lib is not creating lib/x86_64.so file.

Please help!

Answer

Bruno Sendras picture Bruno Sendras · Aug 26, 2019

I had the same problem with my app and this is what worked for me.

I'm using the AAB format to upload the app and my build.gradle had this architecture targets: "armeabi-v7a", "arm64-v8a, "x86","x86_64". But after building the project, the 'x86_64' folder was not created inside the AAB. So I decided to remove 'x86' and 'x86_64' and now my build.graddle looks like this

     defaultConfig {
        ...
        ndk {
            abiFilters  "armeabi-v7a", "arm64-v8a"
        }
        ...
     }
     splits {
        abi {
            ...
            include  "armeabi-v7a", "arm64-v8a"
        }
     }
     applicationVariants.all { variant ->
        variant.outputs.each { output ->
            // For each separate APK per architecture, set a unique version code as described here:
            // http://tools.android.com/tech-docs/new-build-system/user-guide/apk-splits
            def versionCodes = ["armeabi-v7a":1, "arm64-v8a":2]
            def abi = output.getFilter(OutputFile.ABI)
            if (abi != null) {  // null for the universal-debug, universal-release variants
                output.versionCodeOverride =
                        versionCodes.get(abi) * 1048576 + defaultConfig.versionCode
            }
        }
     }

This allow me to publish in google playstore with any problems. Hope it helps!

NOTE: Please, note that removing target architectures results in less target devices, as @UzairAslam says in comments below. So, try to understand if this workaround fits to your project needs.