在我的项目中,我有三个模块: 1.应用程序 2.数据 3.域名
我使用刀柄进行依赖注入。但我不断收到以下错误:
E:\Projects\AndroidStudioProjects\Fintock\app\build\generated\source\kapt\debug\com\example\fintock\Hilt_HiltApplication.java:20: error: cannot find symbol
return DaggerHiltApplication_HiltComponents_SingletonC.builder()
^
symbol: variable DaggerHiltApplication_HiltComponents_SingletonC
这是刀柄模块的代码:
NetworkModule.kt (在数据模块中)
package com.example.data.di
import com.example.data.NetworkConstants
import com.example.data.api.AlphaVintageApi
import com.jakewharton.retrofit2.adapter.kotlin.coroutines.CoroutineCallAdapterFactory
import com.squareup.moshi.Moshi
import com.squareup.moshi.kotlin.reflect.KotlinJsonAdapterFactory
import dagger.Module
import dagger.Provides
import dagger.hilt.InstallIn
import dagger.hilt.components.SingletonComponent
import okhttp3.OkHttpClient
import okhttp3.logging.HttpLoggingInterceptor
import retrofit2.Retrofit
import retrofit2.converter.moshi.MoshiConverterFactory
import javax.inject.Qualifier
@Qualifier
@Retention(AnnotationRetention.BINARY)
annotation class AlphaVintageRetrofit
@Qualifier
@Retention(AnnotationRetention.BINARY)
annotation class NewsApiRetrofit
@Module
@InstallIn(SingletonComponent::class)
object NetworkModule {
@Provides
fun provideInterceptor(): HttpLoggingInterceptor {
return HttpLoggingInterceptor().setLevel(HttpLoggingInterceptor.Level.BODY)
}
@Provides
fun provideOkHttpClient(httpLoggingInterceptor: HttpLoggingInterceptor): OkHttpClient {
return OkHttpClient.Builder()
.addInterceptor(httpLoggingInterceptor)
.build()
}
@Provides
fun provideMoshiConverter(): MoshiConverterFactory {
return MoshiConverterFactory.create(
Moshi.Builder()
.add(KotlinJsonAdapterFactory())
.build()
)
}
@AlphaVintageRetrofit
@Provides
fun provideAlphaVintageRetrofitModule(
moshiConverterFactory: MoshiConverterFactory,
okHttpClient: OkHttpClient
): Retrofit {
return Retrofit.Builder()
.baseUrl(NetworkConstants.ALPHA_VINTAGE_BASE_URL)
.addCallAdapterFactory(CoroutineCallAdapterFactory())
.addConverterFactory(moshiConverterFactory)
.client(okHttpClient)
.build()
}
@NewsApiRetrofit
@Provides
fun provideNewsApiRetrofitModule(
moshiConverterFactory: MoshiConverterFactory,
okHttpClient: OkHttpClient
): Retrofit {
return Retrofit.Builder()
.baseUrl(NetworkConstants.NEWS_API_BASE_URL)
.addCallAdapterFactory(CoroutineCallAdapterFactory())
.addConverterFactory(moshiConverterFactory)
.client(okHttpClient)
.build()
}
@Provides
fun provideAlphaVintageServiceApi(@AlphaVintageRetrofit retrofit: Retrofit): AlphaVintageApi {
return retrofit.create(AlphaVintageApi::class.java)
}
}
UsecaseModules.kt (在域模块中)
@Module
@InstallIn(SingletonComponent::class)
object UsecaseModule {
@Provides
@Singleton
fun provideGetStockInformationUseCase(stockInDetailRepository: StockInDetailRepository) : GetStockInformationUseCase {
return GetStockInformationUseCase(stockInDetailRepository)
}
}
HiltApplication.kt
@HiltAndroidApp
class HiltApplication : Application()
当我尝试在我的应用程序中使用干净的架构时出现问题。以前,当我只有一个模块(而不是像现在这样的三个)时,没有错误。
我已经被这个错误困扰了好几天,所以任何形式的帮助都将不胜感激。 !!
提前致谢!!