Android не может добавить приложение в Google Store. APK-файлы или пакеты приложений доступны для 64-битных устройств, но у них есть только 32-битный собственный код.

Когда я пытаюсь разместить приложение в магазине Google, я вижу следующее:

Этот выпуск не соответствует требованиям 64-разрядной версии Google Play.

Следующие APK или пакеты приложений доступны для 64-разрядных устройств, но они содержат только 32-разрядный собственный код. У меня только 32-битный собственный код, я делаю это при сборке Gradle:

С 1 августа 2019 г. все выпуски должны соответствовать требованиям 64-разрядной версии Google Play.

Включите в свое приложение 64-битный и 32-битный собственный код. Используйте формат публикации Android App Bundle, чтобы автоматически гарантировать, что архитектура каждого устройства получает только необходимый собственный код. Это позволяет избежать увеличения общего размера вашего приложения.

ndk {
            moduleName "***"
                abiFilters "armeabi", "armeabi-v7a", "x86_64", "mips",'arm64-v8a'
        }



        task nativeLibsToJar(type: Jar, description: 'create a jar archive of the native libs') {
            destinationDir file("$buildDir/native-libs")
            baseName 'native-libs'
            from fileTree(dir: 'libs', include: '**/*.so')
            into 'lib/'
        }

        tasks.withType(JavaCompile) {
            compileTask -> compileTask.dependsOn(nativeLibsToJar)
        }
        splits {
            abi {
                include  "armeabi-v7a", "arm64-v8a"
            }
        }

        applicationVariants.all { variant ->
            variant.outputs.each { output ->
                // For each separate APK per architecture, set a unique version code as described here:
                // http://tools.android.com/tech-docs/new-build-system/user-guide/apk-splits
                def versionCodes = ["armeabi-v7a":1, "arm64-v8a":2]
                def abi = output.getFilter(OutputFile.ABI)
                if (abi != null) {  // null for the universal-debug, universal-release variants
                    output.versionCodeOverride =
                            versionCodes.get(abi) * 1048576 + defaultConfig.versionCode
                }
            }
        }

Но не могу добавить apk в google store

введите здесь описание изображения

редактировать

введите здесь описание изображения

редактировать

[! [введите здесь описание изображения] [3]] [3]

редактировать [! [введите описание изображения здесь] [4]] [4]


person kiki Kala2    schedule 16.01.2020    source источник
comment
Не используйте APK для загрузки в игровой магазин, используйте AAB   -  person MichaelStoddart    schedule 16.01.2020
comment
@Hooman abiFilters armeabi, armeabi-v7a, x86_64, mips, 'arm64-v8a', 'x64' это?   -  person kiki Kala2    schedule 16.01.2020
comment
@MichaelStoddart но украсть я не могу скачать apk   -  person kiki Kala2    schedule 16.01.2020
comment
Так что вместо этого загрузите AAB!   -  person MichaelStoddart    schedule 17.01.2020


Ответы (1)


Здесь все, что вам нужно для поддержки 64-битных архитектур

https://inneka.com/programming/android/how-to-include-so-library-in-android-studio-2/

проверьте структуру своего проекта и включите библиотеки, как показано ниже.

 project/
├──libs/
|  └── *.jar       <-- if your library has jar files, they go here
├──src/
   └── main/
       ├── AndroidManifest.xml
       ├── java/
       └── jniLibs/ 
           ├── arm64-v8a/                       <-- ARM 64bit
           │   └── yourlib.so
           ├── armeabi-v7a/                     <-- ARM 32bit
           │   └── yourlib.so
           └── x86/                             <-- Intel 32bit
               └── yourlib.so
person Dreamer    schedule 16.01.2020
comment
Я делаю это: ndk.abiFilters 'armeabi-v7a', 'arm64-v8a', 'x86', 'x86_64' но украсть не могу поставить apk в магазин google. Что мне следует изменить? - person kiki Kala2; 16.01.2020
comment
В основном проверьте структуру своего проекта и включите библиотеки для 64-битной версии. - person Dreamer; 16.01.2020
comment
Dreamer, поэтому мне нужно удалить все, что я делаю в build.gradle? - person kiki Kala2; 16.01.2020
comment
Какова структура вашего проекта? где место **. so файлов? проверьте их, если вы не видите папки для 64-битной версии, создайте папки для 64-битной версии и скопируйте вручную **. so files ... и создайте свое приложение - person Dreamer; 16.01.2020
comment
Я выкладываю скрин, какая структура правильная? и я удаляю из build.gradle ndk ababiFilters ect - person kiki Kala2; 16.01.2020
comment
/armeabi/libfoo.so ------- /armeabi-v7a/libfoo.so ------- /arm64-v8a/libfoo.so--------- / x86 / libfoo. так что -------- /x86_64/libfoo.so - person Dreamer; 16.01.2020
comment
Вам необходимо прочитать это, если указанное выше решение не сработало ... developer.android .com / studio / build / configure-apk-splits.html. - person Dreamer; 16.01.2020
comment
Теперь я получаю эту ошибку: java.lang.UnsatisfiedLinkError: dlopen failed: /data/app/***/lib/arm64/libpackage.so 32-битный вместо 64-битного - person kiki Kala2; 17.01.2020
comment
Позвольте нам продолжить это обсуждение в чате. - person kiki Kala2; 17.01.2020
comment
проверьте здесь stackoverflow.com/questions/48678598/ - person Dreamer; 17.01.2020