Android 错误:(24,0)找不到参数[com.google.dagger:dagger编译器:2.10]的方法annotationProcessor()

Android 错误:(24,0)找不到参数[com.google.dagger:dagger编译器:2.10]的方法annotationProcessor(),android,android-gradle-plugin,dagger-2,dagger,Android,Android Gradle Plugin,Dagger 2,Dagger,我尝试构建一个模块:Android Studio 3上的api,gradle 4.1,Android Studio插件3.0.0,使用Dagger 2 所以我的build.gradle是: apply plugin: 'java-library' repositories { jcenter() google() } dependencies { implementation fileTree(include: ['*.jar'], dir: 'libs')

我尝试构建一个模块:Android Studio 3上的api,gradle 4.1,Android Studio插件3.0.0,使用Dagger 2

所以我的build.gradle是:

apply plugin: 'java-library'

repositories {
    jcenter()
    google()
}

dependencies {
    implementation fileTree(include: ['*.jar'], dir: 'libs')
    implementation project(':api_shared')

    // Guava
    implementation group: 'com.google.guava', name: 'guava', version: '23.0'

    // Dagger 2
    compile 'com.google.dagger:dagger:2.10'
    annotationProcessor 'com.google.dagger:dagger-compiler:2.10'
}

sourceCompatibility = JavaVersion.VERSION_1_8
targetCompatibility = JavaVersion.VERSION_1_8
我得到以下错误

Error:(24, 0) Could not find method annotationProcessor() for arguments [com.google.dagger:dagger-compiler:2.10] on object of type org.gradle.api.internal.artifacts.dsl.dependencies.DefaultDependencyHandler.
<a href="openFile:D:\Users\me\Workspace\Sample3\api\build.gradle">Open File</a>
错误:(24,0)在org.gradle.api.internal.artifacts.dsl.dependency.DefaultDependencyHandler类型的对象上找不到参数[com.google.dagger:dagger编译器:2.10]的方法annotationProcessor()。
我在使用旧插件版本的人身上看到了类似的错误,但在这里,我不明白为什么会出现这个错误。
有什么想法吗?

您需要Android Gradle插件(2.2版或更高版本)来使用
注释处理器
DSL


您使用的是
apply plugin:'java library'
而不是Android插件。

您不能在
java library
中使用
annotationProcessor
,您需要使用
apt
,但为此,您需要将以下内容添加到
build.gradle

buildscript {
    repositories {
        maven {
            url "https://plugins.gradle.org/m2/"
        }
    }
    dependencies {
        classpath "net.ltgt.gradle:gradle-apt-plugin:0.10"
    }
}

apply plugin: 'java-library'
apply plugin: "net.ltgt.apt"
之后,您可以使用:

apt 'com.google.dagger:dagger-compiler:2.10'

@迪帕利沙。好的,非常感谢。您是否尝试过使用
apt
而不是
annotationProcessor
?@Dipalishah。什么问题?“就我而言,它似乎工作得很好。”纳坦说。与
注释处理器相同的问题
=>找不到方法apt()对于参数…我已经使用版本3.0.0,但根据这一点,我能够在AS3上构建它,没有任何问题,但它使用了dagger 2.10上没有的功能,因此我无法测试它以验证它是否是由我以前使用的dagger 2.10引起的问题…是的,但您需要应用插件。应用插件:“com.android.application”或com.android.library。