Получение ошибки сборки при обновлении до 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
}
}
...
2 ответа
android-apt
устарела и, согласно руководству по миграции:
Начиная с версии 2.2 плагина Android Gradle, все функции, которые ранее предоставлялись android-apt, теперь доступны в плагине Android.
Вы можете удалить android-apt
и следуйте руководству по миграции, чтобы получить эквивалентную функциональность.
Аналогично, согласно странице плагина sdk-manager-plugin:
Этот плагин устарел и больше не разрабатывается. Инструменты и зависимости автоматически загружаются с использованием версии 2.2.0 плагина Android Gradle или более поздней версии.
Так что это тоже можно убрать.
Хочу обобщить, что нам нужно для обновления:
Обновление до 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"
Наконец, что также важно, очистите и восстановите.