Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

This release is not compliant with the Google Play 64-bit requirement error still after adding libraries

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.

like image 917
Osama Avatar asked Nov 06 '22 14:11

Osama


2 Answers

@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:

  1. Put all library file to your apk file, it will make your app bigger but it will allow your app to support every device.

  2. 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

like image 169
Linh Trần Avatar answered Nov 12 '22 19:11

Linh Trần


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'    
        }    
like image 32
Hemanths Avatar answered Nov 12 '22 17:11

Hemanths