小编Adi*_*ure的帖子

使用 Hilt 注入改造

我是 Hilt 的新手,从未正确使用过匕首。我收到以下错误。

[Dagger/MissingBinding] retrofit2.Retrofit cannot be provided without an @Inject constructor or an 
@Provides-annotated method.
Run Code Online (Sandbox Code Playgroud)

我用@provides 注释了我的provideRetrofit 方法,并将其安装在应用程序组件中。我想在我的主要活动中注入它并在那里使用了注入注释。我尝试将它安装在活动组件中,但结果仍然相同。

这是我的改造模块。

@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()
}
}
Run Code Online (Sandbox Code Playgroud)

在我的主要活动中,我写了这个来注入它。

@AndroidEntryPoint
class MainActivity : AppCompatActivity() {

@Inject lateinit var retrofit: Retrofit
Run Code Online (Sandbox Code Playgroud)

android kotlin dagger-hilt

5
推荐指数
1
解决办法
1467
查看次数

标签 统计

android ×1

dagger-hilt ×1

kotlin ×1