使用 dagger 2.10,我曾经能够通过以下方式创建应用程序组件
sAppComponent = DaggerAppComponent.builder()
.appModule(new AppModule(this))
.sessionModule(new SessionModule())
.netModule(new NetModule())
.dataModule(new DataModule())
.build();
我已经在使用 AndroidInjector 进行 Activity ,一切都很好。 现在我切换到2.11,我找不到创建应用程序组件的方法。 在 google tutorial我明白了:
DaggerYourApplicationComponent.create()
.inject(this);
在Application的onCreate中添加。
在我的例子中 DaggerYourApplicationComponent = DaggerAppComponent
。问题是不再创建 DaggerAppComponent 类。
我有:
public class App extends android.support.multidex.MultiDexApplication implements HasActivityInjector {
@Inject DispatchingAndroidInjector<Activity> mDispatchingActivityInjector;
@Override
public void onCreate() {
super.onCreate();
sAppComponent = DaggerAppComponent.create().inject(this); //here the error
和:
@Singleton
@Component(modules = {
AppModule.class,
MainActivityModule.class,
...
})
public interface AppComponent {
void inject(App app);
...
}
在我拥有的 build.gradle 文件中:
def daggerVer = 2.11
compile "com.google.dagger:dagger:$daggerVer"
compile "com.google.dagger:dagger-android-support:$daggerVer"
annotationProcessor "com.google.dagger:dagger-android-processor:$daggerVer"
最佳答案
使用下面列出的依赖项,一切正常:
如果您使用的是 Kotlin
apply plugin: 'kotlin-kapt'
dependencies {
def daggerVer = 2.27 // or latest version
implementation "com.google.dagger:dagger:$daggerVer"
implementation "com.google.dagger:dagger-android-support:$daggerVer"
kapt "com.google.dagger:dagger-android-processor:$daggerVer"
kapt "com.google.dagger:dagger-compiler:$daggerVer"
}
如果您使用的是 Java:
dependencies {
def daggerVer = 2.27 // or latest version
implementation "com.google.dagger:dagger:$daggerVer"
implementation "com.google.dagger:dagger-android-support:$daggerVer"
annotationProcessor "com.google.dagger:dagger-android-processor:$daggerVer"
annotationProcessor "com.google.dagger:dagger-compiler:$daggerVer"
}
您可以找到最新版本号here .
关于android - 未创建 DaggerAppComponent,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44652204/