Как устранить 64-битную ошибку Google Play в выпуске AAB? - PullRequest
2 голосов
/ 24 сентября 2019

Я пытался загрузить APK с 2 дней.Каждый раз, когда я загружаю apk, я получаю 64-битную ошибку.

enter image description here

Согласно Документация Google Я использовал APK Analyze и обнаружил, что в моем проекте есть .so файлы.

На основе документации я добавил ndk.abiFilters 'armeabi-v7a','arm64-v8a','x86','x86_64'.Но все равно я получаю ту же ошибку.

Пожалуйста, проверьте мой код build.gradle.

android {


compileSdkVersion 29
buildToolsVersion '29.0.0'
defaultConfig {
    applicationId "com.XXXXX"
    minSdkVersion 15
    targetSdkVersion 29
    versionCode 237
    versionName "3.3.20"
    multiDexEnabled true

    //ndk.abiFilters 'armeabi-v7a','arm64-v8a','x86_64' - not worked
    ndk.abiFilters 'armeabi-v7a','arm64-v8a','x86','x86_64'
}

applicationVariants.all { variant ->
    variant.resValue "string", "versionName", variant.versionName
}

lintOptions {
    checkReleaseBuilds false
    // Or, if you prefer, you can continue to check for errors in release builds,
    // but continue the build even when errors are found:
    abortOnError false
}

flavorDimensions "default"

buildTypes {

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

dexOptions {
    jumboMode true
    javaMaxHeapSize "4g"
}

productFlavors {
    production {
        applicationId 'com.XXXXX'
    }

    staging {
        applicationId 'com.XXXXX.staging'
    }
}

// Add this block and enable/disable the parameters as follows
bundle {
    density {
        // Different APKs are generated for devices with different screen densities; true by default.
        enableSplit true
    }
    abi {
        // Different APKs are generated for devices with different CPU architectures; true by default.
        enableSplit true
    }
    language {
        // This is disabled so that the App Bundle does NOT split the APK for each language.
        // We're gonna use the same APK for all languages.
        enableSplit false
    }
}}

Пожалуйста, помогите мне решить проблему.

После создания подписанного пакета apkфайлы .so отображаются одинаково в папках armeabi-v7a, arm64-v8a, x86, x86_64.

Ответы [ 4 ]

2 голосов
/ 29 сентября 2019

Я пробовал много решений, но не сработало.Позже я обнаружил, что существует RETAINED APK , существующий в версии игровой консоли и имеющий 32-битную версию.Затем я деактивировал и загрузил новый APK и он успешно работал

2 голосов
/ 24 сентября 2019

Если вы говорите, что «обнаружили, что есть .so файлы», я предполагаю, что ваш проект не компилируется, а только использует их.Затем вам понадобятся эти собственные библиотеки для отсутствующих архитектур из проекта NDK, который создал эти библиотеки.Это не может быть сделано просто с помощью другого конфига в вашем проекте.

0 голосов
/ 26 сентября 2019

Привет, друг, у меня есть еще один способ для сборки 32- и 64-битных приложений или комплектов.

добавьте этот код в файл build.gradle

defaultConfig {
applicationId "com.XXXXX"
minSdkVersion 15
targetSdkVersion 29
versionCode 237
versionName "3.3.20"
multiDexEnabled true

ndk {
        abiFilters 'arm64-v8a', 'x86_64'
    }
}

примечание: удалить функцию ниже

splits {
abi {
    enable true
    reset()
    include 'armeabi-v7a', 'arm64-v8a'
    universalApk false
}
}
0 голосов
/ 24 сентября 2019

Нет необходимости добавлять эту строку ndk.abiFilters 'armeabi-v7a', 'arm64-v8a', 'x86', 'x86_64' (Удалить эту строку)

добавьте этот код в свою сборку.gradle file

-После релиза Apk вы получили 2 файла apk в папке релиза

- теперь вы можете использовать app-arm64-v8a-release.apk для релиза playstore

-Я надеюсь, что это полезно для вас

android {
lintOptions{
....
}
splits {
    abi {
        enable true
        reset()
        include 'armeabi-v7a', 'arm64-v8a'
        universalApk false
    }
}

}

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...