【问题标题】:Dagger2 not generating Daggercomponent classesDagger2 不生成 Daggercomponent 类
【发布时间】:2017-01-25 15:26:51
【问题描述】:

Dagger2 没有在 android studio 中生成任何组件类构建 daggercomponent 类。我也尝试过重建、清理 gradles 和使缓存无效,但它没有帮助。 这是我的示例项目 build.gradle 之一

buildscript {
repositories {
    jcenter()
}
dependencies {
    classpath 'com.neenbedankt.gradle.plugins:android-apt:1.8'

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

android {
compileSdkVersion 25
buildToolsVersion "25.0.0"
defaultConfig {
    applicationId "com.example.g.daggerillkillu"
    minSdkVersion 15
    targetSdkVersion 25
    versionCode 1
    versionName "1.0"
    testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
buildTypes {
    release {
        minifyEnabled false
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
    }
 }
}

repositories{
maven{url "https://jetpack.io"}
}

dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
    exclude group: 'com.android.support', module: 'support-annotations'
})
compile 'com.android.support:appcompat-v7:25.1.0'
testCompile 'junit:junit:4.12'
compile 'com.google.dagger:dagger:2.0.2'
apt 'com.google.dagger:dagger-compiler:2.0.2'
provided 'javax.annotation:jsr250-api:1.0'
}

车辆模块.java

@Module
public class vehiclemodule {
@Provides
@Singleton
Motor providesMotor(){
    return new Motor();
}
@Provides
@Singleton
Vehicle provideVehicle(){
    return new Vehicle(new Motor());
}
}

vehicleComponent.java

 @Singleton
 @Component(modules = {vehiclemodule.class})
public interface VehicleComponent {
Vehicle provideVehicle();
 }

android studio 有什么问题还是我做错了什么?

【问题讨论】:

  • 检查您的@Inject 类并验证它的格式是否正确

标签: java android dagger-2 dagger


【解决方案1】:

android studio 有什么问题还是我做错了什么?

如果没有生成任何内容,那么您很可能没有启用注释处理:

【讨论】:

  • 是的,它已被禁用,我已启用它,但问题仍然存在。
  • 下一步我将彻底清理项目并重建
  • 你用的是什么版本的android studio?
  • 2.2.3,非常感谢我重建它,它就像魔术一样工作。
  • 我目前使用的是android studio 3.6.3版。我还在设置中启用了注释,但我仍然收到错误消息。匕首版本 2.25.4。使缓存无效并重新启动几次。
【解决方案2】:

您还需要有模块并构建它们。 请查看此完整教程

https://github.com/codepath/android_guides/wiki/Dependency-Injection-with-Dagger-2

【讨论】:

  • 我已经阅读并尝试了示例,但是 android studio 无法生成组件类,所以浪费了
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-11-04
  • 2017-04-18
相关资源
最近更新 更多