I am uploading a video editor app on play store that has libraries with some native code. So I made it compatible for 64bit by adding this to gradle.
ndk.abiFilters 'armeabi-v7a','arm64-v8a','x86','x86_64'
Adding it still problem is not solved . When I upload on playstore it still gives 64bit error. This is my gradle
apply plugin: 'com.android.application'
android {
compileSdkVersion 28
defaultConfig {
applicationId "com.maam.videoeditor"
minSdkVersion 17
targetSdkVersion 28
versionCode 5
versionName "1.0"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
ndk.abiFilters 'armeabi-v7a','arm64-v8a','x86','x86_64'
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
}
}
}
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation 'com.android.support:appcompat-v7:28.0.0'
implementation "com.android.support:customtabs:28.0.0"
implementation 'com.android.support:design:28.0.0'
implementation 'com.android.support:cardview-v7:28.0.0'
implementation 'com.writingminds:FFmpegAndroid:0.3.2'
}
I have added 64bit line in gradle but on uploading 64bit not compliant error shows. Kindly guide on solving this problem.
@Osama: First of all, please check if your apk file have library in 64 bit. There are many way to do this: - Use Analyze Apk function of Android Studio (for more detail, please refer: https://developer.android.com/distribute/best-practices/develop/64-bit) - Archive your apk file and check inside that folder. If your app doesn't has folder "arm64-v8a" it mean your app still not versioned up to 64 bit.
About your requirement, if you want your app is support 64 bit architecture, you must also version up your native library (.so file) to 64 bit.
About your code:
ndk.abiFilters 'armeabi-v7a','arm64-v8a','x86','x86_64'"
I don't recommend you add this unless you use AppBundle new feature of Android Studio. Because when you use this, there will be 4 new apk file created for each architecture. And if you upload the file of arm64-v8a architecture, the error will disappear but it will announce you that your apk is support less device than previous release because it cannot support 32 bit device.
There are 2 possible solution for this problem:
Put all library file to your apk file, it will make your app bigger but it will allow your app to support every device.
Apply AppBundle for your project. For more detail about this, please check this link: https://android.jlelse.eu/a-practical-guide-to-android-app-bundle-for-beginners-7e8d93831828
android {
compileSdkVersion 29
defaultConfig {
-----
-----
ndk.abiFilters 'armeabi-v7a','arm64-v8a','x86','x86_64'
ndk {
abiFilters 'armeabi-v7a','arm64-v8a','x86','x86_64'
}
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
}
packagingOptions {
exclude 'lib/armeabi-v7a/libvudroid.so'
exclude 'lib/x86/libvudroid.so'
exclude 'lib/arm64-v8a/libvudroid.so'
}
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With