我尝试使用Dagger 2构建模块:Android Studio 3上的api,gradle 4.1,Android Studio插件3.0.0
所以我的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>
我看到使用旧插件版本的人有类似的错误,但在这里,我不明白为什么我会收到此错误。 有什么想法吗?
答案 0 :(得分: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 :(得分:-1)
您需要 Android Gradle插件(2.2或更新版本)才能使用annotationProcessor
DSL。
您使用的是apply plugin: 'java-library'
而不是Android插件。