Setting Explict Annotation Processor

前端 未结 9 1208
自闭症患者
自闭症患者 2021-01-30 08:25

I am attempting to add a maven repository to my Android Studio project. When I do a Gradle project sync everything is fine. However, whenever I try to build my apk, I get this e

相关标签:
9条回答
  • 2021-01-30 08:47

    To fix the error, simply change the configuration of those dependencies to use annotationProcessor. If a dependency includes components that also need to be on the compile classpath, declare that dependency a second time and use the compile dependency configuration.

    For example:

    annotationProcessor 'com.jakewharton:butterknife:7.0.1'
    compile 'com.jakewharton:butterknife:7.0.1'
    

    This link describes it in detail: https://developer.android.com/studio/preview/features/new-android-plugin-migration.html#annotationProcessor_config

    Relevant snippet included for completeness.

    Use the annotation processor dependency configuration

    In previous versions of the Android plugin for Gradle, dependencies on the compile classpath were automatically added to the processor classpath. That is, you could add an annotation processor to the compile classpath and it would work as expected. However, this causes a significant impact to performance by adding a large number of unnecessary dependencies to the processor.

    When using the new plugin, annotation processors must be added to the processor classpath using the annotationProcessor dependency configuration, as shown below:

    dependencies { ... annotationProcessor 'com.google.dagger:dagger-compiler:' }

    The plugin assumes a dependency is an annotation processor if its JAR file contains the following file: META- INF/services/javax.annotation.processing.Processor. If the plugin detects annotation processors on the compile classpath, your build fails and you get an error message that lists each annotation processor on the compile classpath. To fix the error, simply change the configuration of those dependencies to use annotationProcessor. If a dependency includes components that also need to be on the compile classpath, declare that dependency a second time and use the compile dependency configuration.

    0 讨论(0)
  • 2021-01-30 08:49

    In previous versions of the plugin, dependencies on the compile classpath were automatically added to the processor classpath. That is, you could add an annotation processor to the compile classpath and it would work as expected. However, this causes a significant impact to performance by adding a large number of unnecessary dependencies to the processor.

    When using the Android plugin 3.0.0, you must add annotation processors to the processor classpath using the annotationProcessor dependency configuration, as shown below:

    dependencies { ... annotationProcessor 'com.google.dagger:dagger-compiler:<version-number>' implementation 'com.google.dagger:dagger-compiler:<version-number>' }

    0 讨论(0)
  • 2021-01-30 08:51

    If nothing works from above answers add following step as well, specially for new update of Android Studio 3.0.1:

    Android Studio 3.0.1:

    Add this to your app.gradle file in dependencies:

    classpath 'com.neenbedankt.gradle.plugins:android-apt:1.8'
    
    0 讨论(0)
  • 2021-01-30 08:56

    In the build.gradle(module app)

    1. apply the plugin:

       apply plugin: 'com.jakewharton.butterknife'
      
    2. Add the following lines in the dependencies section:

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

    in the build.gradle(Project:projectName), add the classPath in the dependencies like this :

        classpath 'com.jakewharton:butterknife-gradle-plugin:8.4.0'
    

    It will fix this issue. In case if not then add maven:

     maven {
     url 'https://maven.google.com'
     }
    
    0 讨论(0)
  • 2021-01-30 09:01

    Add this code to your gradle app

    defaultConfig{
        javaCompileOptions {
            annotationProcessorOptions {
                includeCompileClasspath true
            }
        }
    }
    

    I found the solution here https://github.com/JakeWharton/butterknife/issues/908

    0 讨论(0)
  • 2021-01-30 09:04

    Simply update your butter knife with Annotation processor

    compile 'com.jakewharton:butterknife:8.8.1'
    annotationProcessor 'com.jakewharton:butterknife-compiler:8.8.1'
    

    i hope it's help you

    0 讨论(0)
提交回复
热议问题