繁体   English   中英

不确定如何将游标转换为此方法的返回类型

[英]Not sure how to convert a Cursor to this method's return type

我在这里很困惑。 所以也许有人可以给我一些启示。 我有一个看似简单的模式(下面有完整代码),但是我收到编译器错误提示

错误:不确定如何将游标转换为此方法的返回类型。

有什么问题? 我在room_version = "2.1.0-alpha02"

@Entity(tableName = "big_dog")
class BigDog(val big: Boolean, @PrimaryKey val id:Int=1)

@Dao
interface BigDogDao {

    @Insert(onConflict = OnConflictStrategy.REPLACE)
    fun insert(dog: BigDog)

    @Query("SELECT * FROM big_dog LIMIT 1")
    fun getBigDog(): LiveData<BigDog>

}

部署时检查日志,以查看除此错误外是否还有任何通知。 如果有,请修复它们。 如果您的房间代码存在其他问题,则可能会出现此错误。

对于我的特定问题,是我不小心将重复变量添加到一个实体中。

public int routeId;
/* other code */
public int routeid; 

这导致此警告在构建日志中弹出。

Room无法创建SQLite连接来验证查询。 查询验证将被禁用。 错误:[SQLITE_ERROR] SQL错误或缺少数据库(重复的列名称:routeId)

我经过检查并修复了所有问题,因此没有警告,并且重新启用了查询验证,并且我不再

错误:不确定如何将游标转换为此方法的返回类型。

检查您的应用gradle文件。 尝试不要在项目中混用Pre-AndroidX和AndroidX组件依赖项。
注意依赖名称空间组。 他们应该有一个相似的开始。
在我的示例中,它是"android.arch.____:XXX"

dependencies{
   ...

   def lifecycle_version = "1.1.1"
   def room_version = "1.1.1"

   // Lifecycle components
   implementation "android.arch.lifecycle:extensions:$lifecycle_version"
   annotationProcessor "android.arch.lifecycle:compiler:$lifecycle_version"

   // Room components
   implementation "android.arch.persistence.room:runtime:$room_version"
   annotationProcessor "android.arch.persistence.room:compiler:$room_version"
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM