【问题标题】:Error:(24, 0) Could not find method annotationProcessor() for arguments [com.google.dagger:dagger-compiler:2.10]错误:(24, 0) 找不到参数 [com.google.dagger:dagger-compiler:2.10] 的方法 annotationProcessor()
【发布时间】:2017-11-13 10:47:16
【问题描述】:

我尝试使用 Dagger 2 在 Android Studio 3、gradle 4.1、Android Studio 插件 3.0.0 上构建模块:api

所以我的 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>

我在使用旧插件版本的人中看到了类似的错误,但在这里,我不明白为什么会出现此错误。 有什么想法吗?

【问题讨论】:

  • @Dipalishah。好的,非常感谢
  • 你试过用apt代替annotationProcessor吗?
  • @Dipalishah。什么样的问题?就我而言,它似乎运作良好。
  • @Natan。与annotationProcessor 相同的问题 => 找不到方法 apt() 用于参数...

标签: android android-gradle-plugin dagger-2 dagger


【解决方案1】:

您不能在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'

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

    • 我已经使用了 3.0.0 版,但根据 tuto 我可以毫无问题地在 AS3 上构建它,但它使用了 dagger 2.10 上没有的功能,所以我无法对其进行测试以验证如果这是我之前使用的 dagger2.10 引起的问题......
    • 是的,但您需要应用插件。应用插件:'com.android.application' 或 com.android.library。
    猜你喜欢
    • 2018-10-11
    • 1970-01-01
    • 2017-07-24
    • 1970-01-01
    • 2018-01-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多