Поддержка 64-битной дает ошибку при добавлении ndk.abiFilters в build.gradle - PullRequest
0 голосов
/ 01 февраля 2019

Большинство разработчиков Android должны получить сообщение от Google об обновлении приложений для поддержки 64-битной архитектуры к августу 2019 года. Подробные инструкции приведены здесь: Убедитесь, что ваше приложение поддерживает 64-битные устройства

В моем приложении я обнаружил, что используются 32-битные библиотеки, и поэтому мне нужно обновить приложение для поддержки 64-битной архитектуры.Как указано в руководстве выше, я добавил в файл build.gradle следующее:

ndk.abiFilters = 'armeabi-v7a' 'arm64-v8a' 'x86' 'x86_64'

Однако после этого я получаю следующую ошибку при создании приложения:

Ошибка: (35, 0) Не удалось найти метод armeabi-v7a () для аргументов [arm64-v8a] в DefaultConfig_Decorated {name = main, dimension = null, minSdkVersion = DefaultApiVersion {mApiLevel = 16, mCodename = 'null'}, targetSdkVersion =DefaultApiVersion {mApiLevel = 28, mCodename = 'null'}, renderscriptTargetApi = null, renderscriptSupportModeEnabled = null, renderscriptSupportModeBlasEnabled = null, renderscriptNdkModeEnabled = null, версияИнструмент = null, версия_приложения = тестовая версия = версия, тестовая версия = 3{}, testHandleProfiling = null, testFunctionalTest = null, signatureConfig = null, resConfig = null, mBuildConfigFields = {}, mResValues ​​= {}, mProguardFiles = [], mConsumerProguardFiles = [], mConsumerProguardFiles = [], mManifestnllWare {null} {MW) {null} {m}} mWcom.android.build.gradle.internal.dsl.DefaultConfig.

Кто-нибудь уже пробовал обновить приложение до 64-битной версии?Есть идеи, как решить эту проблему?

Ответы [ 2 ]

0 голосов
/ 04 февраля 2019

Это можно сделать, обновив сборку gradle defaultConfig

defaultConfig {
    applicationId "my.test.64bitapp"
    minSdkVersion 15
    targetSdkVersion 26
    versionCode 42
    versionName "1.0.2"
    multiDexEnabled true
    vectorDrawables.useSupportLibrary = true
    ndk.abiFilters 'armeabi-v7a', 'arm64-v8a', 'x86' ,'x86_64'
}

или

defaultConfig {
    applicationId "com.swypmedia"
    minSdkVersion 16
    targetSdkVersion 26
    versionCode 2
    versionName "2.0.2"
    ndk {
        abiFilters 'armeabi-v7a', 'arm64-v8a', 'x86' ,'x86_64'
    }
}

Я проверил это на приложениях Android-native и реагировать-native.сборка прошла успешно и приложение работало.

0 голосов
/ 03 февраля 2019

Согласно NdkOptions , abiFilters определяется как Set<String>

Set<String> abiFilters

В groovy Set инициализируется с использованием следующего синтаксиса (если вы хотите использовать оператор'='):

Set<String> mySet = ["armeabi-v7a", "arm64-v8a", "x86", "x86_64"] 
...