I'm using Dagger 2.21 和 when I try to do

@Module
internal abstract class FragmentModule {
    @ContributesAndroidInjector
    internal abstract fun loginFragment() : LoginFragment
}

@Singleton
@Component(modules = [AndroidSupportInjectionModule::class, AppModule::class, ActivityModule::class, ViewModelBuilder::class, ViewModelModule::class, RepositoriesModule::class, ApiModule::class, FragmentModule::class])
interface AppComponent : AndroidInjector<PhotocoApplication> {
    @Component.Builder
    abstract class Builder : AndroidInjector.Builder<PhotocoApplication>()
}

I get this error:

/app/build/generated/source/kapt/debug/com/photoco/app/injection/module/FragmentModule_LoginFragment$app_debug.java:18: error: incompatible types: Class LoginFragment cannot be converted to Class extends Fragment

I have been searching 和 saw that using 2.21 和 setting this gets it to work but no luck yet

和roid.useAndroidX=true ; 和roid.enableJetifier=true

LoginFragment扩展:

dagger.和roid.support.DaggerFragment()

With all this setup can't get it to build, am I missing something here? I can make it work with Activities using DaggerActivity but not with Fragments.

PhotocoApplication extends dagger.和roid.support.DaggerApplication

谢谢

推荐答案

通过将所有dagger依赖项更新为2.21修复了此问题,缺少android支持(仍在使用2.16).

implementation 'com.google.dagger:dagger:2.21'
implementation 'com.google.dagger:dagger-android:2.21'
implementation 'com.google.dagger:dagger-android-support:2.21'
kapt "com.google.dagger:dagger-compiler:2.21"
kapt "com.google.dagger:dagger-android-processor:2.21"

Kotlin相关问答推荐

如何避免使用公共类实现内部接口

有没有一种简单的方法来识别物体?

如何在Docker中使用Selenium和chromedriver?

为什么 Kotlin 中没有 init 块的注释

Mockk:对同一函数进行两次存根会忽略第一个行为

如何在 Kotlin 中初始化 Short 数组?

Kotlin:调用 CoroutineScope.launch 与在协程内启动之间的区别

如何使用子变量在 Kotlin 中初始化父级

如何在 Android Jetpack Compose 中的画布上绘制一侧加厚的描边?

如何在 Kotlin 中使用具有继承的泛型

Kotlin:如何使用第一个参数的默认值进行函数调用并为第二个参数传递一个值?

Kotlin:泛型、反射以及类型 T 和 T:Any 之间的区别

Android Kotlin StringRes 数量String

Android Studio 和 Kotlin:Unresolved reference: also

如何在kotlin语言中将字符转换为ascii值

Jetpack Compose 折叠工具栏

如何将 CameraView 与 Jetpack Compose 一起使用?

将字符串转换为HashMap的最简单方法

Kotlin中的嵌套let块

Kotlin 中的限制函数