java - 如何使 "provided"范围在 Android Studio 上工作?

标签 java android gradle provider dagger

如何让“提供的”作用域在 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/

相关文章:

java - 如何在不使用 UIManager 的情况下更改 JOptionPane 的背景颜色?

android - 如何在android中使用ffmpeg命令在视频上添加文本水印

android - 如何让安卓手机响铃?

android - 下载的可执行文件无法在主机上执行

java - 库存元素使用的设计模式建议

java - 返回 OkHttp 异步结果有问题

java - 如何知道垃圾收集器是否在我的应用程序运行时运行?

java - 通过字符串数组以编程方式填充表布局

android - 如何通过 Gradle 导入我在 GitHub 上的库项目?

java - 从 Spring Batch 项目中的 build.gradle 获取值