Ошибка 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.
Другие вопросы по тегам