Не удается сгенерировать x64-версию apks в моем проекте

В соответствии с новой политикой Play Store *, которая вступит в силу в августе *, мне нужно убедиться, что мое приложение предоставляет не только 32-разрядную версию, но и 64-разрядную версию, но когда я пытаюсь создать эту версию через NDK, Я всегда получаю одни и те же библиотеки. После попыток, попыток и попыток я только что получил apk без какой-либо папки «lib».

Я пытался установить NDK с помощью abiFilters на gradle и не получил никаких изменений...

defaultConfig {
    applicationId "com.myproject.supermidia"
    minSdkVersion 17
    targetSdkVersion 26
    versionCode 20192201
    versionName "2.4"
    multiDexEnabled true
    vectorDrawables.useSupportLibrary = true
}

person Richard Nixon    schedule 28.05.2019    source источник
comment
Просто уточню: действительно ли ваше приложение содержит нативные библиотеки сейчас? Потому что опубликованный вами фрагмент gradle на самом деле не имеет ничего общего с созданием собственного кода. Если ваше приложение (включая любые связанные с ним зависимости) написано исключительно на java/kotlin, вам не нужно ничего делать.   -  person Michael    schedule 29.05.2019
comment
Нет, но стоит помнить, что я делал несколько попыток и в своем исходном коде (до совершения всех таких попыток) у меня было внутри папки libs 2 библиотеки: armeabi и armv7 (что-то в этом роде). В настоящее время, поскольку я удалил много вещей (например, NDK и удалил папки вывода и выпуска приложений), я мог повлиять на все это. Могу я уточнить? Большое спасибо.   -  person Richard Nixon    schedule 30.05.2019


Ответы (1)


Для сборки для ARM (и эмулятора x86) разделение должно выглядеть примерно так. x86_64 может быть немного бесполезным, потому что эмулятор x86_64 работает медленно, и нет оборудования, о котором я бы знал...

android {

    defaultConfig {

        ...
        externalNativeBuild {
            cmake {
                arguments "-DANDROID_ARM_NEON=TRUE", "-DANDROID_CPP_FEATURES=rtti exceptions"
            }
        }
    }

    externalNativeBuild {
        cmake {
            path file('src/main/cpp/CMakeLists.txt')
        }
    }

    splits {
        abi {
            enable true
            reset()
            include "armeabi-v7a", "arm64-v8a", "x86"
            universalApk true
        }
    }
}
person Martin Zeitler    schedule 28.05.2019
comment
Привет, спасибо за быстрый ответ. Я немного запутался... В выложенном вами отрывке появляются термины, которых никогда не было в моем, например: cmake и split или externalNativeBuild... Это повлияет? У меня еще не было доступа к моему Mac для проведения тестов, но я пойду как можно скорее. Спасибо. - person Richard Nixon; 30.05.2019