kotlin 升级到 1.6.0 后如何在 Room Dao 中使用 suspend 修饰符?

How to use suspend modifier in Room Dao after kotlin upgrade to 1.6.0?

将 kotlin 升级到 1.6.0 会导致 Room Dao suspend 修饰符中断构建项目并出现错误:“不确定如何处理查询方法的 return 类型......”。

除了存储库中 运行 Dao 函数 withContext(Disapatchers.IO) 的解决方法之外,(这里)是否有任何解决方案?

我昨天在升级 Kotlin 1.6.0 时遇到了同样的问题。

我的工作项目开始失败,出现相同的错误消息。

在其他一些论坛中搜索后,有人提到将 roomVersion 更改为“2.4.0-beta02”。而且......令人惊讶的是它有效!至少它编译没有任何问题。

试试吧,希望它对你也有用。

我的定义在一个变量中:

def roomVersion = "2.4.0-beta02"

因此 Room 的其余依赖项应利用此更改。

新的 Kotlin 编译器(又名 1.6.+)至少需要 room 版本 2.4.0 才能支持该语言。因此,将您的房间依赖性升级到 2.4.0.

并且由于您使用的是 room 版本,因此您还必须定位 Android API 31

Room 2.4.0 changes