【问题标题】:How to make "provided" scope working on Android Studio?如何使“提供的”范围在 Android Studio 上工作?
【发布时间】:2016-02-26 07:57:03
【问题描述】:

如何使“提供的”范围在 Android Studio 上适用于 dagger? 运行我的项目后,我遇到了这个问题: Module adapter for class com.example.Module could not be loaded. Please ensure that code generation was run for this module.

我的毕业典礼在下面

 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()
    }
}

【问题讨论】:

    标签: java android gradle provider dagger


    【解决方案1】:

    compileClasspath 不起作用的原因是 Gradle 的 Android 插件使用自己的源集:https://google.github.io/android-gradle-dsl/current/com.android.build.gradle.api.AndroidSourceSet.html

    顺便说一句,Gradle 的 Android 插件还创建了一个 provided 配置,因此您不必进行任何配置。

    话虽如此,您应该使用android-apt 插件及其apt 配置而不是provided 配置:https://bitbucket.org/hvisser/android-apt(请参阅自述文件中的问答,了解为什么您应该更喜欢apt provided)

    【讨论】:

    • 不起作用,我补充说:dependencies {classpath 'com.neenbedankt.gradle.plugins:android-apt:1.8'} apply plugin: 'com.neenbedankt.android-apt' ... apt 'com.squareup.dagger:dagger-compiler:1.2.2' 但问题仍然是Module adapter could not be loaded. Please ensure that code generation was run for this module.
    • 嗯,您可能需要在 Android Studio 中手动启用注解处理。
    • 如何在 Android Studio 上做到这一点?
    猜你喜欢
    • 2014-05-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-31
    • 1970-01-01
    • 2015-04-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多