Невозможно создать APK с 64-битной библиотекой под Android Studio - PullRequest
0 голосов
/ 03 октября 2019

Мне нужно обновить существующее приложение в Play Store. По этой причине, начиная с августа, Google также запросил предоставление 64-разрядных версий.

Я включил инструкции, представленные в приложении build.gradle, следующим образом:

compileSdkVersion 28
defaultConfig {
    applicationId "com..."
    minSdkVersion 24
    targetSdkVersion 28
    versionCode 10
    versionName "1.5"
    multiDexEnabled true
    testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
    ndk {
        abiFilters 'arm64-v8a','x86_64','armeabi-v7a','x86'
    }
}

и:

split {abi {enable true reset () включает 'arm64-v8a', 'x86_64', 'armeabi-v7a', 'x86' universalApk true}}

Я могусгенерируйте APK, как ожидается, но, к сожалению, версии arm64-v8a и x86_64 не содержат 64-битного кода.

При анализе APK в Android Studio отсутствует каталог lib, в то время как APK armeabi-v7a включает lib / libarm_arch.so.

Обратите внимание, что в процессе компиляции не отображается сообщение об ошибке.

Может ли зависимость вызвать эту проблему и почему Android Studio не может показать сообщение об ошибке?

Как определить, почему не создается 64-разрядная версия?

I 'Используя Android Studio для 3.5.


После поиска библиотеки libarm_arch.so я обнаружил, что она связана с FFMPEG. Но FFMPEG не упоминается в моих зависимостях Gradle, и я до сих пор не нашел, как сказать Android Studio, чтобы также встроить версию библиотеки arm68-v8a.

Спасибо за вашу помощь.

Ответы [ 2 ]

0 голосов
/ 04 ноября 2019

У меня была та же проблема, я преобразовал проект 2 года назад в последнюю версию Android Studio, теперь мне нужно сгенерировать 64-битную версию, но встроенный APK и Bundle не генерируют 64-битную версию.

Я обнаружил, что у меня есть каталог, который вызывал эту несовместимость:

app / src / main / jniLibs (этот каталог имел подкаталоги / armeabi / armeabi-v7a / x86)

Я исправилэто путем удаления каталога jniLibs.

0 голосов
/ 04 октября 2019

Как определить, почему 64-разрядная версия не генерируется?

из https://developer.android.com/distribute/best-practices/develop/64-bit#64-bit-libraries

In a typical case, an APK or bundle that's built for both 32-bit and 64-bit architectures will have folders for both ABIs, each with a corresponding set of native libraries. If there's no support for 64-bit, you'll likely see a 32-bit ABI folder but *not a 64-bit folder*.

Редактировать:если вы прочитали только одну и ту же ссылку https://developer.android.com/distribute/best-practices/develop/64-bit#port-32-to-64, вы подтвердите, действительно ли вы вносите какие-либо изменения в свой код, чтобы иметь возможность переносить порты с 32 по 64, вы могли бы сделать правильный шаг в граде, но не вкод. Я не могу больше ничего сказать, если вы не предоставите образец Android Studio, и вам не на что будет жаловаться, если вы сохраняете свой код на 32 и пытаетесь собрать на 64, он просто оставляет ваш результат сборки на 64 папки пустым, как точкуна мой первый ответ

Надеюсь, это поможет:)

...