В течение нескольких дней я изо всех сил пытался получить 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так что извиняюсь, если это нубский вопрос.