gpt4 book ai didi

AndroidX Dagger2 MultiDexApplication : Does not implement HasActivityInjector

转载 作者:行者123 更新时间:2023-11-29 18:43:21 24 4
gpt4 key购买 nike

我找不到这个问题的解决方案。

我的多 dex 应用程序已经可以运行,但自从我添加了 Dagger 2.16 后,它就无法运行了。

这是我的应用程序类:

class App : MultiDexApplication(), HasActivityInjector {

@Inject
lateinit var dispatchingAndroidInjector: DispatchingAndroidInjector<Activity>

override fun onCreate() {
super.onCreate()
if (BuildConfig.DEBUG) {
Timber.plant(Timber.DebugTree())
}
AppInjector.init(this)
}

override fun activityInjector(): AndroidInjector<Activity> = dispatchingAndroidInjector
}

启动时出错

Caused by: java.lang.RuntimeException: androidx.multidex.MultiDexApplication does not implement dagger.android.HasActivityInjector

最佳答案

检查您的 list ( AndroidManifest.xml ) 并确保您的 <application>标签列出了您的应用程序而不是 MultiDexApplication,特别是如果您在调用 AppInjector 之前没有看到 Timber 日志。


请注意,您的错误消息指出:

Caused by: java.lang.RuntimeException: androidx.multidex.MultiDexApplication does not implement dagger.android.HasActivityInjector

...这表明 getApplication() 返回的类类型为MultiDexApplication ,不是App 。一般来说,Android 建议保持应用程序子类简洁; docs建议子类是可选的,如果您不需要子类,DaggerApplication 和 MultiDexApplication 都旨在代替自定义应用程序子类。这使得您的 list 可能不会指向您的应用程序类。

关于AndroidX Dagger2 MultiDexApplication : Does not implement HasActivityInjector,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52481710/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com