由于以下错误,我无法构建我的应用。
@ Component.Builder缺少所需模块或组件的设置器
我正在使用
implementation "androidx.room:room-runtime:2.1.0"
kapt "androidx.room:room-compiler:2.1.0"
我的应用程序RoomModul看起来像这样:
@Module
class RoomModule(application: Application) {
@Singleton
private var logDatabase : LogDatabase =
Room.databaseBuilder(application, LogDatabase::class.java, "log-db").build()
@Singleton
@Provides
fun providesLogDatabase() : LogDatabase {
return logDatabase
}
@Singleton
@Provides
fun providesLogDao() : LogDao {
return logDatabase.getLogDao()
}
@Singleton
@Provides
fun providesLogRepository(logDao: LogDao) : LogRepository {
return LogDataSource(logDao)
}
}
我的AppComponent看起来像这样:
@Singleton
@Component(
modules = [
AndroidInjectionModule::class,
AppModule::class,
MainActivityModule::class,
RoomModule::class
])
interface AppComponent {
@Component.Builder
interface Builder {
@BindsInstance
fun application(application: Application): Builder
fun build(): AppComponent
}
fun inject(logApplication: LogApplication)
}
因此,我的RoomModule需要应用程序来提供会议室数据库。但我不断收到错误消息。
我认为@BindsInstance应该为我的模块提供应用程序实例。我也尝试从RoomModule中删除构造函数,但没有成功。如果可以提供更多信息,请告诉我。
答案 0 :(得分:0)
Try to use this
@Module
class RoomModule()
{
@Singleton
@Provides
private var logDatabase(application: Application) : LogDatabase =
Room.databaseBuilder(application, LogDatabase::class.java, "log-db").build()
----
}
And Remove this line ---> fun inject(logApplication: LogApplication)
from AppComponent