【发布时间】:2019-07-16 10:45:25
【问题描述】:
我正在使用room persistence library 和dagger
RoomModule.kt
@Module
class RoomModule {
@Provides
@Singleton
internal fun provideMoviesAppDatabase(application: Application): MoviesAppDatabase {
return Room.databaseBuilder<MoviesAppDatabase>(application, KtMoviesAppDatabase::class.java, Keys.DATABASE_NAME)
.addCallback(object : RoomDatabase.Callback() {
override fun onCreate(db: SupportSQLiteDatabase) {}
override fun onOpen(db: SupportSQLiteDatabase) {}
})
.build()
}
}
KtMoviesAppDatabase.kt
@Database(entities = [Movie::class], version = 1)
abstract class KtMoviesAppDatabase : RoomDatabase() {
abstract fun getMovieDAO(): MovieDAO
}
我遇到的错误:
{编辑}
我做了一些改变
@Module
class RoomModule {
@Provides
@Singleton
internal fun provideMoviesAppDatabase(application: Application): KtMoviesAppDatabase {
return Room.databaseBuilder<KtMoviesAppDatabase>(application, KtMoviesAppDatabase::class.java, Keys.DATABASE_NAME)
.addCallback(object : RoomDatabase.Callback() {
override fun onCreate(db: SupportSQLiteDatabase) {}
override fun onOpen(db: SupportSQLiteDatabase) {}
})
.build()
}
}
我仍然有错误:
Unresolved reference: java
【问题讨论】:
-
删除
.java,我猜应该可行 -
如果我删除
.java,我们会得到错误类型不匹配。`Required: Class<TypeVariable(T)!> Found: KClass<KtMoviesAppDatabase> -
MoviesAppDatabase是什么? ,也很抱歉那里需要.java -
您的退货声明应返回
KtMoviesAppDatabase,但您将其视为MoviesAppDatabase -
@ManoharReddy ...我做了一些更改 ....请检查编辑
标签: android kotlin android-room dagger-2