Получение ошибки сборки при обновлении до gradle 3.3 и инструментов сборки Android 2.3.0
Я только что обновил свои файлы сборки
Gradle от 2.14.1 до 3.3
Плагин Android от 2.2.3 до 2.3.0
Я получаю следующую ошибку. Похоже, что некоторые плагины третьих сторон. Может ли кто-нибудь пролить свет на это? Я не могу найти что-либо в журналах изменений, связанных с этим изменением.
Возникла проблема с настройкой проекта ': apis'.
Не удалось уведомить слушателя по оценке проекта.
Команда "android" больше не включена в SDK. Любые ссылки к нему (например, сторонними плагинами) следует удалить.
Файл сборки, в который вызывается ошибка, выглядит примерно так:
apply plugin: 'android-sdk-manager'
apply plugin: 'com.android.library'
apply plugin: 'android-apt'
android {
compileSdkVersion Integer.parseInt(ANDROID_SDK_VERSION)
buildToolsVersion ANDROID_BUILD_TOOLS_VERSION
// Legacy apache network stack
useLibrary 'org.apache.http.legacy'
defaultConfig {
minSdkVersion Integer.parseInt(ANDROID_MIN_SDK_VERSION)
targetSdkVersion Integer.parseInt(ANDROID_SDK_VERSION)
consumerProguardFiles 'proguard-rules.pro'
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_7
targetCompatibility JavaVersion.VERSION_1_7
}
packagingOptions {
exclude 'LICENSE.txt'
exclude 'META-INF/LICENSE'
exclude 'META-INF/LICENSE.txt'
exclude 'META-INF/NOTICE'
}
lintOptions {
abortOnError false
}
}
...
Ответы
Ответ 1
android-apt
устарел и, согласно руководству по миграции:
Начиная с версии 2.2 Android версии Gradle, все функциональные возможности, ранее предоставленные андроид-ап, теперь доступны в плагине Android.
Вы можете удалить android-apt
и следовать руководству по миграции, чтобы получить эквивалентную функциональность.
Аналогично, согласно странице sdk-manager-plugin:
Этот плагин устарел и больше не разрабатывается. Инструменты и зависимости автоматически загружаются с использованием версии 2.2.0 плагина Android Gradle или новее.
Так что это тоже можно удалить.
Ответ 2
Хотите подвести итоги для обновления:
-
Обновление до gradle 3.3 и инструменты сборки Android 2.3.0
-classpath 'com.android.tools.build:gradle:2.2.3'
+classpath 'com.android.tools.build:gradle:2.3.0'
и
-distributionUrl=https\://services.gradle.org/distributions/gradle-2.14.1-all.zip
+distributionUrl=https\://services.gradle.org/distributions/gradle-3.3-all.zip
Это нужно сделать Android Studio автоматически при обновлении.
-
Удалите android-apt
и sdk-manager-plugin
, как предложено @ian
-classpath 'com.neenbedankt.gradle.plugins:android-apt:1.8'
и
-apply plugin: 'android-sdk-manager'
-apply plugin: 'com.neenbedankt.android-apt'
Эти плагины устарели и больше не нужны в более новой версии gradle.
-
Измените номер версии инструмента сборки в файле app/build.gradle:
- buildToolsVersion "23.0.3"
+ buildToolsVersion '25.0.0'
-
Найдите все apt
в файле gradle и замените на annotationProcessor
. В качестве примера мы используем AutoValue и Parceler, и мы должны будем сделать это:
- apt "com.ryanharter.auto.value:auto-value-gson:$autoValueGsonVersion"
+ annotationProcessor "com.ryanharter.auto.value:auto-value-gson:$autoValueGsonVersion"
и
- apt "org.parceler:parceler:$parcelerVersion"
+ annotationProcessor "org.parceler:parceler:$parcelerVersion"
-
Наконец, это также важно, очистить и перестроить.