Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/kotlin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android Kotlin 1.0.2房间数据库_Android_Kotlin_Koin - Fatal编程技术网

Android Kotlin 1.0.2房间数据库

Android Kotlin 1.0.2房间数据库,android,kotlin,koin,Android,Kotlin,Koin,我正在使用koin 1.0.2来管理依赖项注入,但它不能与room数据库一起工作,它返回到无法为单个数据库创建定义。。。这是我的密码: @Database(entities = [UserEntity::class], version = 1, exportSchema = false) abstract class UserDatabase : RoomDatabase() { abstract fun userDao(): UserDao companion object

我正在使用koin 1.0.2来管理依赖项注入,但它不能与room数据库一起工作,它返回到无法为单个数据库创建定义。。。这是我的密码:

@Database(entities = [UserEntity::class], version = 1, exportSchema = false)
abstract class UserDatabase : RoomDatabase() {

    abstract fun userDao(): UserDao

    companion object {

        private var INSTANCE: UserDatabase? = null

        fun getInstance(context: Context): UserDatabase {
            if (INSTANCE == null) {

                INSTANCE = Room.databaseBuilder(
                        context,
                        UserDatabase::class.java,
                        "user_database")
                        .allowMainThreadQueries()
                        .build()
            }

            return INSTANCE!!
        }
    }
}


val DatabaseModule = module {

   single { UserDatabase.getInstance( get())}

}

class UserApplication : Application() {
    override fun onCreate() {
        super.onCreate()
        startKoin(getModules())
    }
    private fun getModules() = listOf(DatabaseModule, RepositoryModule, ViewModule)
}

我在一个带有示例实体的测试项目中尝试了您的代码,它成功了。由于您尚未发布实际错误描述,请执行/确保以下步骤,然后重试

将以下依赖项添加到
build.gradle

implementation "androidx.room:room-runtime:$room_version"
kapt "androidx.room:room-compiler:$room_version"
如果您将RxJava用于room,那么也添加以下行

implementation "androidx.room:room-rxjava2:$room_version"
应用
kotlin-kapt
插件

apply plugin: 'kotlin-kapt'
清洁和建造


如果您仍然遇到问题,请考虑用LogCAT堆栈跟踪编辑问题。

< P>您是否在其他模块中声明了<代码>上下文< /代码>对象的定义?因为您的数据库方法需要这个方法,而您正在调用
get()
来解析它。如果没有,就换一个

single{UserDatabase.getInstance(get())}

single{UserDatabase.getInstance(androidContext())}