|
|
1
20
您不能使用
Room等待特定的方法签名来生成代码。所以,除非Room不直接支持协同路由,否则不能对DAO使用挂起函数。 目前,您有这样的解决方法:
但如果可能的话,请始终选择选项1,因为Room已经提供了非阻塞API,只需使用协同路由适配器,就可以将此API与无回调的协同路由一起使用
截至年月日
|
|
|
2
9
实际上这是可能的, 您需要使用:
您可以按照本教程进行操作: https://medium.com/androiddevelopers/room-coroutines-422b786dc4c5 此外,对我有效的版本是:2.1.0-alpha04 所以,我的客房部是:
|
|
|
3
8
我通过将我的房间版本更改为最新的稳定版本(截至撰写本文时为2.3.0)来解决这个问题,同时我当前的Kotlin版本是1.5.10。 一般来说,如果仍然存在错误,我建议您对依赖项使用最新的稳定版本。 |
|
|
4
3
我也有同样的错误,后来我才知道 悬 我的DAO类方法中的关键字:
转换为解决我的问题:
|
|
|
5
0
在某些活动中,可能需要将房间DB代码行包装在一个协同例程中,如下面的代码所示。(因为如果没有协同程序,它将崩溃。)
在这种情况下,如果Dao中没有使用suspend方法,则此活动将崩溃。这意味着不可能摆脱协同程序或删除挂起方法。在这种情况下,如果从Dao中删除suspend方法,并将活动的协同路由更改为以下内容,那么它可以正常工作。
cf.kotlin\u版本=“1.6.0”和room\u版本=“2.3.0” |
|
|
6
0
参数的类型必须是用@Entity或其集合/数组注释的类。 科特林。协同程序。继续(<);?超级科特林。单位(>);续); ^ |