我是Hilt的新手,之前也没有正确使用过Dagger。我遇到了以下错误:
[Dagger/MissingBinding] retrofit2.Retrofit cannot be provided without an @Inject constructor or an
@Provides-annotated method.
我已经在提供Retrofit方法上标注了@provides,并将其安装在Application组件中。我想要在我的主Activity中注入它,并在那里使用了inject注解。我尝试将其安装在Activity组件中,但结果仍然相同。
这是我的Retrofit模块。
@Module
@InstallIn(ApplicationComponent::class)
class RetrofitModule {
@Singleton
@Provides
fun provideGson(): Gson {
return GsonBuilder().create()
}
@Singleton
@Provides
fun provideRetrofit (gson: Gson): Retrofit{
return Retrofit.Builder().baseUrl("Base Url")
.addConverterFactory(GsonConverterFactory.create(gson))
.addCallAdapterFactory(RxJava3CallAdapterFactory.create()).build()
}
}
在我的主Activity中,我已经编写了以下代码进行注入。
@AndroidEntryPoint
class MainActivity : AppCompatActivity() {
@Inject lateinit var retrofit: Retrofit
@HiltAndroidApp
吗? - Thracian