【问题标题】:Room: Passing Values for Parameter房间:为参数传递值
【发布时间】:2019-08-12 08:42:35
【问题描述】:

在我的房间应用程序中出现错误:

没有为参数“pb_value”传递值

没有为参数“pb_date”传递值

没有为参数“pb_details”传递值

但是,当我传入这些值以使我有 4 个值而不是 1 时,我收到一条消息:

:app:checkDebugDuplicateClasses 26 毫秒 执行 taskAction 12 毫秒。

我无法传递这些值而不会出现第二个错误。我将如何解决这个问题?

已解决:我删除了几个依赖项,然后能够传入值而不会出现第二个错误。

主活动

if (requestCode == newPbActivityRequestCode && resultCode == Activity.RESULT_OK) {
            intentData?.let { data ->
                val pb = Pb(data.getStringExtra(NewPbActivity.EXTRA_REPLY))
                pbViewModel.insert(pb)

实体

@Entity(tableName = "pb_table")
data class Pb(@PrimaryKey val pb: String,
              @ColumnInfo(name = "value")val pb_value: Double,
              @ColumnInfo(name = "date")val pb_date: Int,
              @ColumnInfo(name = "details")val pb_details: String)

【问题讨论】:

  • :app:checkDebugDuplicateClasses 26 ms Execute taskAction 12 ms. 这只是一条消息,实际错误是什么?
  • @TimCastelijns 我刚刚设法解决了这个问题。通过删除几个不需要的依赖项,我可以传入值,然后我没有第二个错误。

标签: android kotlin android-room


【解决方案1】:

Android 数据库执行需要在后台线程上运行。因此,请确保将插入代码放在后台线程中。我经常为此使用 RxJava

Completable.fromCallable { pbViewModel.insert(pb) }
    .subscribeOn(Schedulers.io())
    .observeOn(AndroidScheduler.mainThread())
    .subscribe()

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-02-20
    • 1970-01-01
    • 2022-06-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-08-03
    • 2016-01-22
    相关资源
    最近更新 更多