Tag: 安卓室

Android Studio中的Kotlin Room安装问题

我正在努力在Android Studio中设置Room + Kotlin的简单示例,但要做到这一点真的很痛苦。 我有类像: @Entity(tableName = "test") data class Test(val name: String, val lastname: String) DAO @Dao interface TestDao { @Query("SELECT * FROM test") fun loadAll(): List<Test> @Insert fun insertAll(vararg tests: Test) @Delete fun delete(test: Test) } AppDatabase: @Database(entities = arrayOf(Test::class), version = 1) abstract class AppDatabase : RoomDatabase() { abstract fun testDao(): TestDao […]

房间和Kotlin – 得到“查询中的每个绑定变量必须有一个匹配的方法参数”。

我得到这个错误: error: Each bind variable in the query must have a matching method parameter. Cannot find method parameters for :network. error: Unused parameter: arg0 当试试Room和Kotlin这样的时候: @Dao interface TokenDefinitionDao { @Query("SELECT * FROM token_descriptors WHERE network LIKE :network") fun getAllForNetwork(network: String?): List<TokenDescriptor> @Delete fun delete(token: TokenDescriptor) } 但是我正在传递和使用这个参数。 任何人都可以看到问题是什么,或者可以指向使用Kotlin房间的例子吗?

Kotlin的房间数据库有什么问题?

我有一个数据类 @Entity(tableName = "type") data class Type( @PrimaryKey(autoGenerate = true) var id: Int = 0, var type: Int = 0 ) 编译项目时收到消息 错误:由于多个构造函数是合适的,因此无法选择构造函数。 但是,如果我改变数据类 @Entity(tableName = "type") data class Type( @PrimaryKey(autoGenerate = true) var id: Int = 0, var type: String = "" ) 或者java类 @Entity(tableName = "type") public class Type { @PrimaryKey(autoGenerate = true) […]

在kotlin使用房间作为单身人士

我试图使用房间作为单身人士,所以我不必调用Room.databaseBuilder() – 这是昂贵的不止一次。 @Database(entities = arrayOf( Price::class, StationOrder::class, TicketPrice::class, Train::class, TrainCategory::class ), version = 2) @TypeConverters(Converters::class) abstract class AppDatabase : RoomDatabase() { abstract fun dao(): TrainDao companion object { fun createDatabase(context: Context): AppDatabase = Room.databaseBuilder(context, AppDatabase::class.java, "trains.db").build() } } 注意: 因为Room需要使用abstract class所以不能使用Object。 单例必须是线程安全的,因为多个线程可以同时访问它。 必须能够把Context作为一个参数。 我已经看过所有类似的StackOverflow问题,并没有满足我的要求 在Kotlin中有论点的单身人士 不是线程安全的 Kotlin – 在Android中转换Singleton DatabaseController的最佳方法 是线程安全的 Kotlin线程保存与参数 使用对象的 本地懒惰单例

Android Room Persistences库和Kotlin

我正在尝试使用Kotlin和Room Persistance Library编写一个简单的应用程序。 我遵循Android Persistance codelab中的教程 。 这是我在Kotlin的AppDatabase类: @Database(entities = arrayOf(User::class), version = 1) abstract class AppDatabase : RoomDatabase() { abstract fun userModel(): UserDao companion object { private var INSTANCE: AppDatabase? = null @JvmStatic fun getInMemoryDatabase(context: Context): AppDatabase { if (INSTANCE == null) { INSTANCE = Room.inMemoryDatabaseBuilder(context.applicationContext, AppDatabase::class.java).allowMainThreadQueries().build() } return INSTANCE!! } @JvmStatic fun destroyInstance() […]