如何让“提供的”作用域在 Android Studio 上为 Dagger 工作?
运行我的项目后,我遇到了这个问题:
类 com.example.Module 的模块适配器无法加载。请确保已为此模块运行代码生成。
下面是我的gradle
buildscript {
repositories {
mavenCentral()
}
}
apply plugin: 'com.android.application'
configurations {
provided
}
android {
buildTypes {
release {
minifyEnabled true
signingConfig signingConfigs.release
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-android.txt'
debuggable false
}
}
sourceSets {
main {
java.srcDirs = ['/src/main/java']
res.srcDirs = ['/src/main/res']
assets.srcDirs = ['/src/main/assets']
compileClasspath += [configurations.provided]//it doesn work, Error: Could not find property 'compileClasspath' on source set main.
}
}
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.squareup.dagger:dagger:1.2.2'
provided 'com.squareup.dagger:dagger-compiler:1.2.2'
}
顶级成绩:
// Top-level build file where you can add configuration options common to all sub-projects/modules.
buildscript {
repositories {
jcenter()
mavenCentral()
}
dependencies {
classpath 'com.android.tools.build:gradle:1.5.0'
}
}
allprojects {
repositories {
jcenter()
}
}
最佳答案
compileClasspath
不起作用的原因是 Gradle 的 Android 插件使用它自己的源集:https://google.github.io/android-gradle-dsl/current/com.android.build.gradle.api.AndroidSourceSet.html
顺便说一句,Gradle 的 Android 插件还创建了一个提供的
配置,因此您不必配置任何东西。
也就是说,您应该使用android-apt
插件及其apt
配置而不是提供的
配置:https://bitbucket.org/hvisser/android-apt (请参阅自述文件中的问答,了解为什么您应该更喜欢 apt
而不是 provided
)
关于java - 如何使 "provided"范围在 Android Studio 上工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35646368/