错误:(24,0)无法为参数找到方法annotationProcessor()[com.google.dagger:dagger-compiler:2.10]

问题描述 投票:2回答:2

我尝试构建一个模块: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>

我看到使用旧插件版本的人有类似的错误,但在这里,我不明白为什么我得到这个错误。任何的想法?

android android-gradle dagger-2 dagger
2个回答
2
投票

你不能在annotationProcessor中使用java-library,你需要使用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'

-1
投票

您需要Android Gradle插件(2.2或更新版本)才能使用annotationProcessor DSL。

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

© www.soinside.com 2019 - 2024. All rights reserved.