java - 未生成 Android Kotlin Dagger 2 组件
问题描述
我不知道为什么重建项目后没有生成我的 DaggerComponent。
@Scope
@Retention(AnnotationRetention.RUNTIME)
annotation class NewsScope
@NewsScope
@Component(
dependencies = [BaseComponent::class],
modules = [NewsModule::class]
)
interface NewsComponent {
fun newsManager(): NewsManager
}
@NewsScope
@Component(
dependencies = [BaseComponent::class],
modules = [NewsModule::class]
)
interface NewsComponent {
fun newsManager(): NewsManager
}
@Module
class NewsModule {
@NewsScope
@Provides
fun provideMoshiConverterFactory(): MoshiConverterFactory {
val moshi = Moshi.Builder().build()
return MoshiConverterFactory.create(moshi)
}
@NewsScope
@Provides
fun provideNewsApi(okHttpClient: OkHttpClient): NewsApi {
val moshi = Moshi.Builder().build()
val retrofit = Retrofit.Builder()
.client(okHttpClient)
.baseUrl(NewsApi.API_URL)
.addCallAdapterFactory(RxJavaCallAdapterFactory
.createWithScheduler(Schedulers.io()))
.addConverterFactory(MoshiConverterFactory.create(moshi))
.build()
val retrofitApi = retrofit.create(RetrofitNewsApi::class.java)
return RetrofitNewsApiImpl(retrofitApi)
}
@NewsScope
@Provides
fun provideNewsManager(newsApi: NewsApi): NewsManager {
return NewsManager(newsApi)
}
}
class NewsFragment : BaseFragment() {
@Inject lateinit var newsManager: NewsManager private set
override fun onCreate(savedInstanceState: Bundle?) {
newsManager = DaggerNewsComponent.builder()
.baseComponent(baseComponent())
.newsModule(NewsModule())
.build().newsManager()
}
}
- *** DaggerNewsComponent 未生成
- $dagger_version = "2.23.2"
- AndroidX 已实现
我是 iOS Pro 但 Android 菜鸟
实施“com.google.dagger:dagger:$dagger_version”实施“com.google.dagger:dagger-android:$dagger_version”实施“com.google.dagger:dagger-android-support:$dagger_version”
annotationProcessor "com.google.dagger:dagger-android-processor:$dagger_version" annotationProcessor "com.google.dagger:dagger-compiler:$dagger_version"
解决方案
你应该kapt
在旁边使用annotationProcessor
kapt 'com.google.dagger:dagger-android-processor:2.23.2'
kapt 'com.google.dagger:dagger-compiler:2.23.2'
并apply plugin: 'kotlin-kapt'
在您的顶部添加build.gradle
推荐阅读
- java - 如何判断 TableCell 在视口中是否可见?
- ruby - 如何从文件中的每一行中提取整数(一年)以及字母和数字的组合
- node.js - NodeJS - 触发了错误的 Express 路由
- java - 在实施 SSO 之前要问的问题
- javascript - 承诺中的 NightmareJS 承诺问题
- hive - 我在哪里可以找到 hive 元存储中的 avro.schema.url?
- php - 获取未知属性:app\models\LoginForm::email
- java - 如何在 ARCore 中放置指向给定地理方向的对象
- swift - 如何判断 facebook 和 gmail firebase 用户是否已经创建
- ajax - 访问以下链接时出现 405 方法不允许错误