64-bit Compliant issue Google Playstore while uploading the apk - android

I recently get this error from google play console stating that
"This release is not compliant with Google Play 64-bit requirement.The following APKS are available with 64-bit devices but they only have 32-bit native code".
So I found the solution in google support and I am writing this piece of code in my defaultconfig in build.gradle
defaultConfig {
applicationId "com.abcdef"
multiDexEnabled true
ndk.abiFilters 'armeabi-v7a','arm64-v8a','x86','x86_64' //This line added
}
Note->My project is a hybrid project and not native
And after analyzing my apk after build I see two folders in lib directory i.e x86 & armeabi-v7a. There is no x86_64 & arm64-v8a directories present
So I am having a confusion that the APK That I have build is only 32 bit apk or will support both 32 and 64 bit.
It is having .so files also.
Its is just a query as from august 1st google play will not take apps with 64-bit compliance as stated in their documentation.

There is option in android studio to analyse APK. By this analysis you can confirm about what architecture (32/64 bit) your APK is supporting. Follow the below link having complete steps,
https://developer.android.com/distribute/best-practices/develop/64-bit

I am using mobile first development MFP-STUDIOS-7.1.0 so by configuring the project with latest ifix of MFP7.1.0 I was able to solve this problem by using MobileFirst Platform Studio 7.1.0.00-20190730-1558

Related

Unity Android 64 Bit - Not Compliant Error

Running into an issue around a native-Android Unity integration release into the Play Store. I extract it as a project out of Unity and migrate it as a Library in our native app.
When attempting to upload an .AAB into the Play Store, the following error occurs:
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: [10406]
I've already checked the following:
First, I followed the steps in the official guide: https://developer.android.com/distribute/best-practices/develop/64-bit
Unity version: 2019.4.9f1, Android player settings I've selected both ARMv7 and ARM64. No x86 option in this version of Unity. Scripting backend listed as IL2CPP
In the build.gradle file, I have listed: ndk { abiFilters 'armeabi-v7a', 'arm64-v8a' } as we want to support both 32-bit and 64-bit
I've used the APK Analyzer tool inside of Android Studio to analyze both the APK and AAB versions of the app. There are the same 10 '.so' files listed in both the lib/armeabi-v7a and lib/arm64-v8a folders.
Next I used the apktool in combination with the 'file' command to extract the contents of both an APK and AAB version of the app, and double check that the '.so' files inside the arm64-v8a folder are, in fact, 64 bit architecture
I tested that if I directly install the APK version using the following command on a 64bit device, it was successful:
% adb install --abi arm64-v8a app.apk
Performing Streamed Install
Success
I am officially out of ideas and I did contact the Play Store for assistance but they haven't responded in 2 days so I'm getting antsy.
Does anyone have ideas as to what I may have missed?
EDIT:
Forgot to mention, this is also inside the app and unityLibrary build.gradle files:
packagingOptions {
doNotStrip '*/armeabi-v7a/*.so'
doNotStrip '*/arm64-v8a/*.so'
}
Here's a repo containing my simplified gradle files, if it helps:
https://github.com/azdragon2/unityandroid-stackoverflow-question
Thank you!
The problem stemmed from the usage of '.bc' files contained within a Unity library I was using. These bc files are always interpreted as 32-bit. You'll have to upgrade whichever library you're using that contains these files.
You can determine if you have the same issue by running the following command on your APK or AAB file:
zipinfo -1 app.apk | grep \.bc$

Android: how to test for 64-bit device compatability

I was getting this warning in google play. 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
I noticed that my apk had only x86, x86_64, armeabi_v7a folders. So I updated the gradle build script and now I have arm64-v8a folder as well. I see all the .so in armeabi-v7a generated in arm64 too.
How can I validate that this will support 64 bit devices
You can create an emulator with 64 bit image, to see that the app works on it.
Also, in your build variants, you can choose which active abi to use:

APKs or App Bundles are available to 64-bit devices, but they only have 32-bit native code

I have an android app which I am trying to upload to Google Play Console.
After analyzing the apk, I can find the same .so files in x86, arm64-v8a and armeabi-v7a folders.
I don't have a x86_64 though.
But still, when I upload my apk to google play console, I get this error:
APKs or App Bundles are available to 64-bit devices, but they only
have 32-bit native code
I have followed the documentation to add
ndk.abiFilters 'armeabi-v7a','arm64-v8a','x86','x86_64'
in my build.gradle file, but that doesn't the structure of the apk.
This is how my analyzed apk looks like:
Please help.
The Agora SDK unfortunately does not support x86_64, which means you'll need to drop support for x86 altogether to be able to upload to the Play Console. Remove 'x86' and 'x86_64' from the list of abiFilters.
At the same time, I would recommend reaching our to the SDK developers to ask them to add support for it so you don't lose on potential users.

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

My native android app gets rejected from the google play console due to the 64-bit requirement, even though it contains 64bit libraries.
I followed the steps on https://developer.android.com/distribute/best-practices/develop/64-bit by checking there are x86_64 and arm64_v8a folders which contain all the .so files.
I tested installing the app using adb install --abi arm64-v8a YOUR_APK_FILE.apk which installed successfully and the app runs fine on my Pixel3a.
I do not use ndk.abiFilters in my gradle file (which defaults to all architectures).
targetSdkVersion and compileSdkVersion is 28
Screenshot of the libraries in my generated apk:
https://imgur.com/a/iBoIazG. I believe this are all from the Fresco library. Extract from my gradle file:
implementation 'com.facebook.fresco:fresco:1.13.0'
implementation 'com.facebook.fresco:animated-webp:1.13.0'
implementation 'com.facebook.fresco:webpsupport:1.13.0'
I am not using the androidX support libraries so cannot go higher than that version of fresco.
Here is the error I get when trying to upload to the 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: 74.
I have seen a few other posts about this error but they are normally related to ReactNative or Expo, whereas my app is full native android.
Anyone got any idea on what I'm doing wrong, or how the google console checks if an app is 64bit ready?
Thanks

cordova build releases 5 apk which to upload

I am trying to build an android app using cordova 8. As soon as cordova build android --release with keystore.
It releases 5 apk file in 5 folder, but I am not sure, which one to upload:-
arm64
armeabi
armv7
x86
x86_64
Now, I am not sure, which one to release and upload for google play after signing.
Are you using a plugin containing native libraries? (I'm still using version 6 of Cordova and have only one apk, so either it's new in earlier versions or it's something to do with your project).
The different APKs you're seeing are to support different processors on the devices.
Most devices use armv7 so that's probably the one you want to upload first, but you can upload all the apks to google play.
It you upload only one (ore some) of the APKs, your app will be compatible only with device using corresponding kind of processor.

Categories

Resources