I am working on Android app with native libraries and I don`t want to support 32-bit phones. Can I avoid armeabi-v7a and support only one ABI - arm64-v8a.
In Google web page is written that the apps must support 64-bit ABIs, but nowhere is written can you drop the support for 32-bit apps - https://developer.android.com/google/play/requirements/64-bit
So can I upload app on Google Play which support only arm64-v8a?
abiFilters 'arm64-v8a'
Related
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.
When I published my React Native App in Google Play I got this 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: 9 and 24.
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 it needs. This avoids increasing the overall size of your app.
How can I fix this Error?
You need to add the following to your android/app/build.gradle file:
abiFilters "armeabi-v7a", "x86", "arm64-v8a", "x86_64"
Specifically, you need to add the 64-bit ABI for whatever 32-bit ABI you already had in the list.
React Native will support 64 bit for android starting version 0.59
https://github.com/facebook/react-native/issues/2814#issuecomment-457688789
I am using some external dependencies in my app, those apps have some .so files but those .so files are not available for x86_64.
So play store does not upload apk and give following error message.
This release is not compliant with the Google Play 64-bit requirement
So i split apk and created following apks.
splits {
abi {
enable true
reset()
include 'armeabi-v7a','arm64-v8a'
universalApk false
}
}
If i upload these 2 apks, play store successfully uploads the apk.
Now my question is that is it fine to not upload x86 apk.
Yes it's fine.
What will happen is that people with x86 and x86_64 devices will not find your app in the Play Store.
An exhaustive list of x86 devices can be took using gsmarena filter at this link: https://www.gsmarena.com/results.php3?sFreeText=INTEL&sOSes=2
You can ignore x86 devices for now if your are not aiming at running your app in the default emulator/genymotion or x86 environments
Your app won't be accessible in Play Market for devices based on x86_64 architecture. But it's very unlikely because most of smartphones are based on Arm
Google's Play Store lets you upload multiple APKs for your app, one for ARM processors and one for x86 processors, so Intel based Android devices can run the app natively. Can I do the same in the Amazon Appstore? I've tried uploading a second binary but it says my x86 APK is not supported by ANYTHING, not only Amazon devices, it also says it won't work with any non-Amazon Android device.
Is that true or is that an incorrect analysis? It doesn't let me submit my application anyway, unless I remove my x86 APK so the only available APK is the ARM one. Is there any way around that so I can submit an app with both an ARM APK and an x86 APK?
Regrettably, no. Amazon Appstore does not support x86 architecture, so it won't be possible to upload 2 binaries of different architecture. Only ARM is supported at the moment.
I have an App containing a native library. The library only works in Android devices containing an ARM cpu.
The native library .so files are stored in the armeabi-v7a folder indicating the .so files are for a ARM cpu.
However when I upload the apk to the Play Store, the App can be downloaded on Android devices containing a x86 (or mips) based cpu. The App crashes as the library does not work on a non ARM cpu.
Unfortunately the library is only available on ARM so I can't include the x86 and mips .so files.
My question is: how can I limit the App from being downloaded by non ARM cpu devices?
I expected some requires=* settings in the AndroidManifest files but I can't find related settings.
Any ideas?
If you switch to advanced mode in the Google Play Developer Console it should give you some options regarding limiting to specific CPU architectures when uploading your APK. Documentation can be found at http://developer.android.com/google/play/publishing/multiple-apks.html .