Подтвердить что ты не робот

Ошибка обработчика аннотаций Android Studio 3.0 Canary 1

Просто обновленный до Android Studio 3.0, проект, который компилировался ранее, бросает следующую ошибку

Ошибка: java.lang.RuntimeException: Обработчики аннотаций теперь должны быть явно заявлено. Следующие зависимости в компиляции classpath, как установлено, содержат обработчики аннотаций. Добавьте их к конфигурации аннотациипроцессора.

Однако этот following не определен. вот как компилируются утверждения в моем build.gradle, как

compile('com.crashlytics.sdk.android:crashlytics:[email protected]') {
    transitive = true;
}

compile 'com.android.support:support-v4:25.3.1'
compile 'com.android.support:appcompat-v7:25.3.1'
compile 'com.android.support:design:25.3.1'
compile 'com.squareup.retrofit2:retrofit:2.1.0'
compile 'com.squareup.retrofit2:converter-gson:2.1.0'
compile 'com.squareup.okhttp3:logging-interceptor:3.2.0'
compile 'com.jakewharton.timber:timber:4.4.0'
compile 'io.reactivex:rxandroid:1.0.1'
compile 'io.reactivex:rxjava:1.0.14'
compile 'com.squareup.retrofit2:adapter-rxjava:2.1.0'
compile 'com.jpardogo.googleprogressbar:library:1.2.0'
compile 'com.wang.avi:library:2.1.3'
compile 'link.fls:swipestack:0.3.0'
compile 'com.jakewharton:butterknife:8.4.0'
compile 'com.codemybrainsout.rating:ratingdialog:1.0.7'
compile 'org.greenrobot:greendao:3.2.0'
compile 'com.android.support.constraint:constraint-layout:1.0.0-beta5'
testCompile 'junit:junit:4.12'
annotationProcessor 'com.jakewharton:butterknife-compiler:8.4.0'
provided 'org.projectlombok:lombok:1.12.6'
4b9b3361

Ответ 1

Выключает Lombok и Butterknife вызывает проблемы

Я обновил ButterKnife и добавил аннотацию Processoror для Ломбока, который решил проблему

implementation 'com.jakewharton:butterknife:8.6.0'
annotationProcessor 'com.jakewharton:butterknife-compiler:8.6.0'

compileOnly 'org.glassfish:javax.annotation:10.0-b28'
compileOnly "org.projectlombok:lombok:1.16.16"
annotationProcessor "org.projectlombok:lombok:1.16.16"

Обновление

В соответствии с комментарием @Beshoy ниже изменены compile на implementation и provided на compileOnly

Ответ 2

см. сообщение об ошибке после компиляции. он покажет имя пакета, которому нужен процесс аннотации. например:

Error:Execution failed for task ':MPChart_libary:javaPreCompileDebug'.
> Annotation processors must be explicitly declared now.  The following dependencies on the compile classpath are found to contain annotation processor.  Please add them to the annotationProcessor configuration.
    - realm-android-0.87.5.jar
  Alternatively, set android.defaultConfig.javaCompileOptions.annotationProcessorOptions.includeCompileClasspath = true to continue with previous behavior.  Note that this option is deprecated and will be removed in the future.
  See https://developer.android.com/r/tools/annotation-processor-error-message.html for more details.

имя поиска "realm-android-0.87.5" в файле build.gradle модуля "MPChart_libary":

dependencies {
    provided 'io.realm:realm-android:0.87.5' 
}

исправить файл build.gradle следующим образом:

dependencies {
    provided 'io.realm:realm-android:0.87.5' 
    annotationProcessor 'io.realm:realm-android:0.87.5' //fix here
}

Ответ 3

У меня такая же проблема с библиотекой MPchart, в build.gradle проекта MPchart добавьте это:

defaultConfig {
        ...
        javaCompileOptions {
            annotationProcessorOptions {
                includeCompileClasspath true
            }
        }
    }

Ответ 4

1- Отключить проверку ошибок процессора аннотаций

Если у вас есть зависимости от пути класса компиляции, в котором нет обработчиков аннотаций, вам не нужно, вы можете отключить проверку ошибок, добавив следующее в свой файл build.gradle. Имейте в виду, что обработчики аннотаций, которые вы добавляете в путь к компиляции, по-прежнему не добавляются в путь класса процессора.

android {
    ... //others options
    defaultConfig {
    ...
    javaCompileOptions {
        annotationProcessorOptions {
            includeCompileClasspath false
        }
      }
   }
}

Ответ 5

  • Открыть build.gradle проекта
  • Просто добавьте эту строку в defaultConfig:

     javaCompileOptions {
                    annotationProcessorOptions {
                          includeCompileClasspath true
                      }
                 }