有两个简单的Dagger 2组件,但它们都没有编译。但有时(我不明白为什么)它确实...... 这真烦人。
所以我想我应该错过一些东西,这是错误:
错误:(18,17)错误:....如果没有@ Provide-或@ Produces-annotated方法,则无法提供InstanceContextService。 home.HomeActivity.mInstanceContextService [注入字段类型:.... services.InstanceContextService mInstanceContextService]
所以我的作品是这样的:
@Component(modules = {InstanceContextModule.class})
@Singleton
public interface InstanceContextComponent {
@Singleton
void inject(HomeActivity activity);
}
我的模块:
@Module
public class InstanceContextModule {
@Provides
@Singleton
public InstanceContextService provideInstanceContext() {
return new FileInstanceService();
}
}
我在gradle中的配置是
apply plugin: 'com.android.application'
apply plugin: 'me.tatarka.retrolambda'
apply plugin: 'com.neenbedankt.android-apt'
android {
compileSdkVersion 23
buildToolsVersion "23.0.2"
// compileOptions.incremental = false
defaultConfig {
applicationId "com.kayentis.ediary"
minSdkVersion 17
targetSdkVersion 23
versionCode 1
versionName "1.0"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
sourceSets {
main {
res.srcDirs = [
'src/main/res',
'src/main/res-main',
'src/main/res-message',
'src/main/res-account'
]
}
}
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
testCompile 'junit:junit:4.12'
compile 'com.android.support:appcompat-v7:23.1.1'
compile 'com.android.support:design:23.1.1'
compile 'com.android.support:support-v13:23.1.+'
compile 'com.google.code.gson:gson:2.1'
//compile 'com.google.protobuf:protobuf-java:2.6.1'
//Dagger 2
// apt 'com.google.dagger:dagger-compiler:2.3'
// compile 'com.google.dagger:dagger:2.3'
apt 'com.google.dagger:dagger-compiler:2.0.2'
compile 'com.google.dagger:dagger:2.0.2'
provided 'org.glassfish:javax.annotation:10.0-b28'
//Retrofit 2.0
compile 'com.squareup.retrofit2:retrofit:2.0.0-beta4'
//RxJava
compile 'io.reactivex:rxjava:1.1.0'
compile 'io.reactivex:rxandroid:1.1.0'
//ButterKnife
// compile 'com.jakewharton:butterknife:7.0.1'
}
我到处寻找,但我想我想念一些...... 在此先感谢^^
答案 0 :(得分:0)
找到解决方案。
有两个组件与@singleton作用域模块,所以这不起作用。现在它正在建设成功。