android - Dagger 2 和 android Studio : working but can't see generated classes

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

我正在尝试在 Android Studio 项目中使用 Dagger 2。我使用了 CoffeeMaker 示例。我已经设法使应用程序构建和工作但是: - 我没有成功看到生成的代码。 - 如果我调试,我也看不到它。 - 此外,DaggerCoffeeApp_Coffee 标记为 reed(无法解析符号)

我的 gradle 文件是:

// Top-level build file where you can add configuration options common to all sub-projects/modules.

buildscript {
    repositories {
        jcenter()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:1.1.3'

        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
    }
}

allprojects {
    repositories {
        jcenter()
    }
}

apply plugin: 'com.android.application'


android {
    compileSdkVersion 22
    buildToolsVersion "21.1.2"

    defaultConfig {
        applicationId "com.mateuyabar.android.dagger2test"
        minSdkVersion 22
        targetSdkVersion 22
        versionCode 1
        versionName "1.0"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
    lintOptions {
        abortOnError false // ignoring some references from dagger-compiler
    }
}

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile 'com.android.support:appcompat-v7:22.0.0'
    compile 'javax.inject:javax.inject:1'
    compile 'javax.annotation:javax.annotation-api:1.2'
    compile 'com.google.dagger:dagger:2.0'
    provided 'com.google.dagger:dagger-compiler:2.0'
    provided 'org.glassfish:javax.annotation:10.0-b28'

}

谢谢

最佳答案

使用 Android-Apt plugin雨果·维瑟:

apply plugin: 'com.android.application'
apply plugin: 'com.neenbedankt.android-apt'

buildscript {
  repositories {
    mavenCentral()
  }

  dependencies {
    // the latest version of the android-apt plugin
    classpath 'com.neenbedankt.gradle.plugins:android-apt:1.4'
  }
}

android {
    compileSdkVersion 22
    buildToolsVersion "21.1.2"

    defaultConfig {
        applicationId "com.mateuyabar.android.dagger2test"
        minSdkVersion 22
        targetSdkVersion 22
        versionCode 1
        versionName "1.0"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
    lintOptions {
        abortOnError false // ignoring some references from dagger-compiler
    }
}

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile 'com.android.support:appcompat-v7:22.0.0'
    compile 'javax.inject:javax.inject:1'
    compile 'javax.annotation:javax.annotation-api:1.2'
    compile 'com.google.dagger:dagger:2.0'
    apt 'com.google.dagger:dagger-compiler:2.0'
    provided 'org.glassfish:javax.annotation:10.0-b28'
}

请注意 apt 'com.google.dagger:dagger-compiler:2.0' 行。这应该使生成的源对 AS 可见。

关于android - Dagger 2 和 android Studio : working but can't see generated classes,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29703480/

相关文章:

Android EditText 总是从底部填充

android - Flutter CustomPaint 不会重绘

android - 将 "uniform sampler2D"传递给 libgdx 中的 glsl 着色器(使用 modelBatch)

android - 任务 ':app:mergeDebugResources' 执行失败。 react native,目前正在尝试在Android上运行

android-studio - 对于 ACTION_VIEW,Google 表格需要哪些信息?

android - 使用Koin库时无法导入ViewModel

gradle - IDEA以及如何禁用Gradle包装器生成?

php - Android从php org.json.JSONArray检索数据无法转换为JSONObject

java.lang.ClassNotFoundException : Didn't find class "java.lang.Character$UnicodeScript" 异常

gradle - 如何让我的自定义gradle任务运行?