Ошибка Android Studio 3.0: несовместимость Android-apt
Я новичок в разработке Android и получил устаревший проект. Поэтому я установил новейшую версию Android Studio и открыл ее.
Когда я пытаюсь построить его, я получаю эту ошибку:
Error:android-apt plugin is incompatible with the Android Gradle plugin. Please use 'annotationProcessor' configuration instead.
Я пробовал решения, показанные в этой теме, но это не сработало.
У меня нет ни одной ссылки на Android в моем скрипте сборки grandle.
Многие из пакетов компиляции показаны как устаревшие. Но когда я следую совету студии Android по обновлению ссылки, я получаю сообщения о том, что пакет не найден.
Как я уже сказал, я новичок в Android Studio World, поэтому я немного растерялся со всеми этими вещами.
Это мой build.gradle (Модуль: приложение):
apply plugin: 'com.android.application'
apply plugin: 'me.tatarka.retrolambda'
apply plugin: 'realm-android'
android {
compileSdkVersion 24
buildToolsVersion "24.0.2"
defaultConfig {
applicationId "xxxxxxxxxxxx"
minSdkVersion 19
targetSdkVersion 24
versionCode 123
versionName "1.2.3"
manifestPlaceholders = [HOCKEYAPP_APP_ID: "xxxxxxxxxxxxxxxxxxxxx"]
//For Test
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
packagingOptions {
exclude 'META-INF/services/javax.annotation.processing.Processor'
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
}
dependencies {
compile fileTree(include: ['*.jar'], dir: 'libs')
compile('com.mikepenz:materialdrawer:4.6.4@aar') {
transitive = true
}
//For Test
androidTestCompile 'com.android.support:support-annotations:24.2.1'
//noinspection GradleCompatible
androidTestCompile 'com.android.support.test:runner:0.5'
androidTestCompile 'com.android.support.test:rules:0.5'
androidTestCompile 'com.android.support.test.espresso:espresso-core:2.2.2'
compile 'com.android.support:appcompat-v7:24.2.1'
compile 'com.android.support:design:24.2.1'
compile 'com.android.support:cardview-v7:24.2.1'
compile 'com.android.support:recyclerview-v7:24.2.1'
compile 'com.android.support:support-v4:24.2.1'
compile 'com.android.support:support-v13:24.2.1'
compile 'com.squareup.retrofit2:retrofit:2.0.0-beta4'
compile 'com.squareup.retrofit2:converter-gson:2.0.0-beta4'
compile 'com.squareup.okhttp3:okhttp:3.1.2'
compile 'com.jakewharton:butterknife:7.0.1'
compile 'com.p_v:flexiblecalendar:1.1.4'
compile 'br.com.zbra:android-linq:1.0.1'
compile 'com.google.android.gms:play-services-maps:9.4.0'
compile 'com.github.PhilJay:MPAndroidChart:v2.1.6'
compile 'com.cardiomood.android:android-widgets:0.1.1'
compile 'com.github.thorbenprimke:realm-recyclerview:0.9.14'
compile 'net.hockeyapp.android:HockeySDK:4.0.0'
}
Это мой build.gradle (проект: MyApp):
buildscript {
repositories {
jcenter()
mavenCentral()
}
dependencies {
classpath 'com.android.tools.build:gradle:3.0.1'
classpath 'me.tatarka:gradle-retrolambda:3.2.3'
classpath "io.realm:realm-gradle-plugin:0.88.3"
}
}
allprojects {
repositories {
jcenter()
mavenCentral()
maven { url "https://jitpack.io" }
}
}
task clean(type: Delete) {
delete rootProject.buildDir
}
1 ответ
Сторонний плагин Android-apt больше не поддерживается. Вы должны переключиться на поддержку встроенного процессора аннотаций, которая была улучшена для ленивой обработки разрешающих зависимостей.
При использовании плагина Android 3.0.0 необходимо добавить процессоры аннотаций в путь к классам процессоров, используя конфигурацию зависимостей annotationProcessor, как показано ниже:
dependencies { ... annotationProcessor 'com.google.dagger:dagger-compiler:<version-number>' }
Пожалуйста, прочтите полное руководство по миграции на Android Gradle Plugin 3.0.0 по адресу https://developer.android.com/studio/build/gradle-plugin-3-0-0-migration.html
Ретроламбда больше не нужна. Новый плагин Android Gradle поддерживает функции языка Java 8. Узнайте больше здесь.
Предполагая, что вы следовали руководству по миграции, ошибка вызвана старым плагином Realm.
Плагин Realm управляет всеми зависимостями Realm за кулисами. Это также означает, что его старая версия не поддерживает новые инструменты.
annotationProcessor
конфигурация впервые поддерживается в Realm 2.2.0, как видно из журнала изменений:
Улучшения
- Добавлена поддержка
annotationProcessor
Конфигурация предоставляется Android Gradle Plugin 2.2.0 или более поздней версии. Плагин Realm добавляет свой процессор аннотаций кannotationProcessor
конфигурация вместоapt
конфигурация, если она доступна, иcom.neenbedankt.android-apt
Плагин не используется. В котлинских проектах,kapt
используется вместоannotationProcessor
конфигурация (#3026).
На самом деле у вас есть два варианта:
- обновите свое Королевство как минимум до 2.2.0, или
- вернуться к плагину Android Gradle 2.3.3.