简体   繁体   中英

Google Play 64-bit requirement issue

I am uploading android app bundle on Google Play Store but getting 64-bit requirement error on review.My app bundle is completely Java/Kotlin based with native support as some third party has dependency on it.

I have included the support for all architecture armeabi-v7a , arm64-v8a , x86 , x86_64 in gradle file also enabled split for the abi.

Gradle config I have added:

apply plugin: "com.android.application"
apply plugin: "io.fabric"
apply plugin: 'com.google.gms.google-services'
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-android-extensions'
apply plugin: 'kotlin-kapt'
apply plugin: 'com.google.firebase.firebase-perf'

apply from: '../jacoco.gradle'

def appCenterKey = "\"XXXX\""

android {
signingConfigs {
    release {
        keyAlias 'XXXX'
        keyPassword 'XXXX'
        storeFile file('../buildconfig/XXXXX.jks')
        storePassword 'XXXXX'
    }
}
compileSdkVersion 28
defaultConfig {
    applicationId "com.XXXXX.XXXX"
    minSdkVersion 23
    targetSdkVersion 28
    versionCode 504
    versionName "2.0.0"
    multiDexEnabled true
    testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
    vectorDrawables.useSupportLibrary = true
    ndk {
        abiFilters "armeabi-v7a", "arm64-v8a","x86","x86_64"
    }
}


buildTypes {
    all {
        buildConfigField "String", XXXXX,appCenterKey
    }
    debug {
        applicationIdSuffix '.dev'
        versionNameSuffix '-DEV'
    }
    release {
        minifyEnabled false
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
    }
}

testOptions {
    execution 'ANDROIDX_TEST_ORCHESTRATOR'
    animationsDisabled true

    unitTests {
        includeAndroidResources = true
        returnDefaultValues = true
    }
}

compileOptions {
    sourceCompatibility JavaVersion.VERSION_1_8
    targetCompatibility JavaVersion.VERSION_1_8
}

bundle {
    language {
        enableSplit = true
    }
    density {
        enableSplit = true
    }
    abi {
        enableSplit = true
    }
}
}

dependencies {
implementation fileTree(include: ['*.jar'], dir: 'libs')
implementation 'androidx.appcompat:appcompat:1.0.2'
implementation 'androidx.cardview:cardview:1.0.0'
implementation 'androidx.recyclerview:recyclerview:1.0.0'
implementation 'androidx.legacy:legacy-support-v4:1.0.0'
implementation 'com.google.android.material:material:1.0.0'
implementation 'androidx.browser:browser:1.0.0'
implementation 'androidx.constraintlayout:constraintlayout:1.1.3'

testImplementation "junit:junit:4.12"
androidTestImplementation 'androidx.test:runner:1.2.0'

// Mockito
def mockitoVersion = "2.17.0"
testImplementation "org.mockito:mockito-core:$mockitoVersion"
androidTestImplementation "org.mockito:mockito-android:$mockitoVersion"

// App Center dependencies
def appCenterVersion = "1.4.0"
implementation "com.microsoft.appcenter:appcenter-analytics:$appCenterVersion"
implementation "com.microsoft.appcenter:appcenter-crashes:$appCenterVersion"

// GSON (https://github.com/google/gson)
implementation 'com.google.code.gson:gson:2.8.5'
implementation 'org.danilopianini:gson-extras:0.2.1'

// Picasso (http://square.github.io/picasso/)
implementation "com.squareup.picasso:picasso:2.71828"
implementation 'androidx.exifinterface:exifinterface:1.0.0'

// Google Play Services
def googlePlayVersion = "17.0.0"
implementation "com.google.android.gms:play-services-maps:$googlePlayVersion"
implementation "com.google.android.gms:play-services-location:$googlePlayVersion"

// AWS (Cognito, API Gateway, etc.)
def awsVersion = "2.14.2"
implementation("com.amazonaws:aws-android-sdk-auth-userpools:$awsVersion@aar") {
    transitive = true
}
implementation("com.amazonaws:aws-android-sdk-mobile-client:$awsVersion@aar") {
    transitive = true
}
implementation "com.amazonaws:aws-android-sdk-apigateway-core:$awsVersion"
implementation "com.amazonaws:aws-android-sdk-kinesis:$awsVersion"

// For amazon web hosted UI authorization
implementation("com.amazonaws:aws-android-sdk-cognitoauth:$awsVersion@aar") {
    transitive = true
}

// Adapter Delegates (https://github.com/sockeqwe/AdapterDelegates)
implementation 'com.hannesdorfmann:adapterdelegates3:3.0.1'
implementation 'com.squareup.retrofit2:retrofit:2.5.0'
implementation 'com.squareup.retrofit2:converter-gson:2.5.0'
implementation 'com.squareup.okhttp3:logging-interceptor:3.10.0'

//Dagger 2
implementation 'com.google.dagger:dagger:2.16'
kapt "com.google.dagger:dagger-compiler:2.16"

//Permissions
def permissionsVersion = "3.3.1"
implementation("com.github.hotchemi:permissionsdispatcher:$permissionsVersion") {
    exclude module: "support-v13"
}
kapt "com.github.hotchemi:permissionsdispatcher-processor:3.3.1"

// Braintree - (Suppressing Lint warning as the Braintree docs ask for dynamic version)

//noinspection GradleDynamicVersion
implementation 'com.braintreepayments.api:drop-in:3.7.0'

//Circular ImageView
implementation 'de.hdodenhof:circleimageview:2.2.0'

//Calligraphy
implementation 'io.github.inflationx:calligraphy3:3.0.0'
implementation 'io.github.inflationx:viewpump:1.0.0'

// Animated Gif
implementation 'pl.droidsonroids.gif:android-gif-drawable:1.2.16'

//Image Compressor
implementation 'id.zelory:compressor:2.1.0'

// Firebase
implementation "com.google.firebase:firebase-core:17.0.1"
implementation "com.google.firebase:firebase-perf:18.0.1"
implementation 'com.google.firebase:firebase-messaging:19.0.1'

implementation 'com.crashlytics.sdk.android:crashlytics:2.10.1'
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
testImplementation 'com.nhaarman.mockitokotlin2:mockito-kotlin:2.0.0-RC2'

implementation 'com.airbnb.android:lottie:2.7.0'

// Google vision API for Face Detection
implementation 'com.google.android.gms:play-services-vision:18.0.0'

// Google wallet for Google Pay
implementation 'com.google.android.gms:play-services-wallet:17.0.0'

// TODO Enable below line for this error for compile time error : Dagger2 cannot access nullable. javax.annotation.Nullable not found
// implementation 'com.google.code.findbugs:jsr305:3.0.2'

// QR and Barcode
implementation 'com.google.zxing:core:3.3.3'


//Multidex
implementation 'com.android.support:multidex:1.0.3'
}
repositories {
mavenCentral()
}

While creating a signed app bundle, in the analyzer it shows all the native support library in it(.so file under armeabi-v7a , arm64-v8a , x86 , x86_64 in lib folder).

But when I upload this bundle to playstore it uploads successfully but shows support for only 2 platforms(32-bit) which is armeabi-v7a , x86. Instead it should have shown support for all platform both 64 and 32 bit.

On click of review it shows me error message

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

Even though I have added dependency for both 32/64 bit native code.

Did you get any luck for fix this issue, i have the same problem, i have armeabi-v7a', 'arm64-v8a', 'x86', 'x86_64', "armeabi" in my APK but when i upload it i get the same error message.

Any help would really appreciated

Thanks for your reply Ahmed,

This is my code below for the past 3 nights i have been researching and trying to fix this issue but unsuccessful. I can see i have 32 bit and 64 bit in my APK file but Google still doesn't accept my APK.

Here is Google Play properties https://ibb.co/j66wn4S

buildscript {
    repositories {
        maven { url 'https://plugins.gradle.org/m2/' }
    }
    dependencies {
        classpath 'gradle.plugin.com.onesignal:onesignal-gradle-plugin:0.12.1'
    }
}
apply plugin: 'com.onesignal.androidsdk.onesignal-gradle-plugin'

repositories {
    maven { url 'https://maven.google.com' }
}

apply plugin: 'com.android.application'

android {
    compileSdkVersion 28
    buildToolsVersion '28.0.3'

    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
    }
    defaultConfig {
        applicationId "com.application.name"
        minSdkVersion 22
        targetSdkVersion 28
        versionCode 74
        versionName "3.1"
        ndk.abiFilters 'armeabi-v7a', 'arm64-v8a', 'x86', 'x86_64', "armeabi"
        renderscriptTargetApi 16
        renderscriptSupportModeEnabled true
        multiDexEnabled true
        manifestPlaceholders = [onesignal_app_id               : "393938b0-6a12-4c4b-ade4-fa22c11840b6",
                                // Project number pulled from dashboard, local value is ignored.
                                onesignal_google_project_number: "REMOTE"]


    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }

    dexOptions {
        javaMaxHeapSize "4g"

    }
}

dependencies {
    implementation fileTree(include: ['*.jar'], dir: 'libs')
    implementation 'com.android.support:appcompat-v7:28.0.0'
    implementation 'com.android.support:customtabs:28.0.0'
    implementation 'com.android.support:animated-vector-drawable:28.0.0'
    implementation 'com.android.support:support-media-compat:28.0.0'
    implementation 'com.android.support:design:28.0.0'
    implementation 'com.android.support.constraint:constraint-layout:1.1.3'
    implementation 'com.android.support:support-v4:28.0.0'
    implementation 'com.android.support:cardview-v7:28.0.0'
    implementation 'com.mcxiaoke.volley:library-aar:1.0.0'
    implementation 'com.google.code.gson:gson:2.8.5'
    implementation 'com.google.firebase:firebase-ads:17.1.3'
    implementation 'com.github.kanytu:android-parallax-listview:v1.1'
    implementation 'com.koushikdutta.ion:ion:2.2.1'
    implementation 'de.hdodenhof:circleimageview:2.2.0'
    implementation 'jp.wasabeef:blurry:2.1.1'
    implementation 'com.onesignal:OneSignal:3.10.6'
    implementation 'com.squareup.picasso:picasso:2.5.2'
    implementation 'com.android.support:multidex:1.0.3'
    implementation 'com.irozon.sneaker:sneaker:1.0.1'
    implementation 'com.github.bumptech.glide:glide:4.8.0'
    implementation 'com.android.support:support-v4:28.0.0'
    annotationProcessor 'com.github.bumptech.glide:compiler:4.8.0'
    implementation 'com.daimajia.easing:library:2.0@aar'
    implementation 'com.daimajia.androidanimations:library:2.3@aar'
    implementation 'org.greenrobot:eventbus:3.1.1'
    implementation 'com.jakewharton:butterknife:8.8.1'
    annotationProcessor 'com.jakewharton:butterknife-compiler:8.8.1'
    implementation 'com.google.android.exoplayer:exoplayer:2.8.4'
    implementation 'pl.bclogic:pulsator4droid:1.0.3'
    implementation 'com.github.yehiahd:FastSave-Android:1.0.6'
    implementation 'de.mrmaffen:vlc-android-sdk:2.0.6'
    implementation 'com.devbrackets.android:exomedia:4.3.0'
    testImplementation 'junit:junit:4.12'
    implementation 'com.jaeger.statusbarutil:library:1.5.1'
}
repositories {
    mavenCentral()
    maven {
        url "https://jitpack.io"
    }
    flatDir {
        dirs 'libx'
    }
}
apply plugin: 'com.google.gms.google-services'

您可以验证添加此代码

defaultConfig { .... renderscriptTargetApi 18 renderscriptSupportModeEnabled true ndk.abiFilters 'armeabi-v7a', 'arm64-v8a', 'x86', 'x86_64', "armeabi" }

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM