Целевой SDK застрял на 22 - PullRequest
0 голосов
/ 21 сентября 2018

В течение нескольких дней я изо всех сил пытался получить apk, построенный с targetSdkVersion, равным 26+, чтобы иметь возможность загрузить его в Google.

Используемая версия React-native "^ 0.57.0-rc.4 ".

Я запускаю сборку не через Android Studio, а в виде сценария оболочки.

cd android
./gradlew clean
./gradlew assembleRelease
# zipalign & sign
~/Library/Android/sdk/build-tools/27.0.1/aapt list -a 200hp.apk | grep SdkVersion

В android/app/build.gradle:

android {
    compileSdkVersion 27
    buildToolsVersion "27.0.3"

    defaultConfig {
        minSdkVersion 17
        targetSdkVersion 27
        ...
    }
    ...
}

В android/build.gradle:

subprojects {
    afterEvaluate {project ->
        if (project.hasProperty("android")) {
            android {
                compileSdkVersion 27
                /* targetSdkVersion 27 */
                buildToolsVersion "27.0.3"
            }
        }
    }
}

ext {
    googlePlayServicesVersion = "10.2.4"
    targetSdkVersion         = "27.0.1"
}

Я получаю сообщение об ошибке «Ваше приложение нацелено на уровень API 22» и соответствующий ответ от aapt: A: android:targetSdkVersion(0x01010270)=(type 0x10)0x16

Стоит сказать, что у меня установлены правильные инструменты сборки.

ls $ANDROID_HOME/build-tools/
23.0.1  25.0.0  25.0.2  25.0.3  26.0.1  26.0.2  27.0.0  27.0.1  27.0.3

Добавление targetSdkVersion 27 в android/app/build.gradle в android:

android {
    compileSdkVersion 27
    buildToolsVersion "27.0.3"
    targetSdkVersion 27

В результате

Не удалось найти метод targetSdkVersion () для аргументов [27] в проекте ': app' типа org.gradle.api.Project.

Раскомментировать targetSdkVersion в afterEvaluate приводит к

возникла проблема при настройке проекта ': RNGL'.Не удалось найти метод targetSdkVersion () для аргументов [27] для объекта типа com.android.build.gradle.LibraryExtension.

Я не так уж много из разработчиков Android или тех, кто имеет опыт работы с gradleтак что извиняюсь, если это нубский вопрос.

Ответы [ 2 ]

0 голосов
/ 03 октября 2018

Отключение всех 3-х библиотек частично доказало, что это была проблема конфигурации проекта.Я последовал совету Мартина, но это не изменило итоговую версию targetSdk (или, по крайней мере, было недостаточно).

Для меня сработало изменение URL-адреса рассылки gradle с:

distributionUrl=https\://services.gradle.org/distributions/gradle-2.14.1-all.zip

на

distributionUrl=https\://services.gradle.org/distributions/gradle-3.5-all.zip 

и запуск процесса сборки в Android Studio.

0 голосов
/ 21 сентября 2018

что targetSdkVersion = "27.0.1" (строка) вместо этого должно быть 27 (целое число).

... в то время как это явно намекает на com.android.build.gradle.LibraryExtension

, поэтому я бы заподозрил одну библиотекумодуль, который все еще может ссылаться на это неправильное значение.

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