Jetpack Compose+Hilt开发Android应用遇未实现抽象方法报错
问题原因
你遇到的错误核心原因是:Dagger Hilt不允许在接口(interface)中使用@Provides注解。接口中的方法默认是抽象方法,Hilt无法为带@Provides的抽象方法生成实例提供逻辑,因此会提示存在未实现的抽象方法。
解决方案
将ApiModule从接口改为object单例类(推荐用object更简洁),保留@Provides方法的具体实现即可:
@Module @InstallIn(SingletonComponent::class) object ApiModule { @Singleton @Provides fun provideOpenWeatherApi(): WeatherApi { return Retrofit.Builder() .baseUrl(Constants.BASE_URL) .addConverterFactory(GsonConverterFactory.create()) .build() .create(WeatherApi::class.java) } }
补充说明
@Provides用于提供实例的具体创建逻辑,必须放在有具体实现的类中(object类或普通类)- 只有
@Binds注解(用于绑定接口与实现类)才需要放在接口中,且方法必须是抽象的
内容的提问来源于stack exchange,提问作者Edgar
相关产品推荐
相关产品推荐

