当前位置: 首页 > 知识库问答 >
问题:

Kotlin-room不知道如何拯救这个领域

诸葛砚文
2023-03-14

我在科特林开始了我的第一个Android项目。官方文件建议我使用我使用的房间。

在添加空间后,我无法编译我的项目。

关于错误的额外信息

warning: There are multiple good constructors and Room will pick the 
no-arg constructor. You can use the @Ignore annotation to eliminate 
unwanted constructors.
 public final class TodoData {
         ^  
 error: Cannot find setter for field.
 private final java.lang.Long id = null;
                             ^  
 error: Cannot find setter for field.
 private final java.lang.String firstName = null;
                               ^    
 error: Cannot find setter for field.
 private final java.lang.String lastName = null;
                               ^    

kotlin 和 room 的版本是:

  • ext.kotlin_version='1.2.31'
  • ext.room_version='1.0.0'

我的 gradle.build 依赖项如下所示:

dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation"org.jetbrains.kotlin:kotlin-stdlib-jre7:$kotlin_version"
implementation 'com.android.support:appcompat-v7:26.1.0'
implementation 'com.android.support.constraint:constraint-layout:1.0.2'
testImplementation 'junit:junit:4.12'
androidTestImplementation 'com.android.support.test:runner:1.0.1'
androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.1'

// Room
implementation "android.arch.persistence.room:runtime:$room_version"
kapt "android.arch.persistence.room:compiler:$room_version"
implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"

我还在文件顶部添加了:

这是我的刀:

@Entity
data class TodoData(
    @PrimaryKey(autoGenerate = true)
    var od: Long? = null,
    var firstName: String = "",
    var lastName: String = ""
 ){
       constructor(): this(od = null, firstName = "", lastName = "")
 }

我尝试的是:

  1. 更改静态编程语言版本
  2. 添加setter和getter(这在静态编程语言中似乎是不允许的)
  3. 将var设置为val

有人遇到同样的问题并修复了它吗?

谢谢你的时间!

ps。当前位置我不经常在Stackoverflow上发布信息,如果你对我提出问题的方式有反馈,我会欣然接受。

共有1个答案

宁锐
2023-03-14

为什么有一个构造函数()?您已经用“”定义了构造函数

data class TodoData(
    @PrimaryKey(autoGenerate = true)
    var od: Long? = null,
    var firstName: String = "",
    var lastName: String = ""
 )

删除构造函数,一切都应该正常。

 类似资料:
  • 我在android应用程序中使用Stripe。目前,客户机服务器用于创建客户和对卡收费。 现在我想在应用程序中保存条带返回的卡信息,并在自定义ui中显示支付方式中添加的卡的列表,以便更新、删除和选择默认卡。 我浏览了stripe的临时密钥文档,他们提供了显示卡细节的活动。但是我找不到如何在自定义ui中显示卡片列表。 有没有其他方法可以实现这一点,例如在本地保存卡信息? 条纹是否允许自定义卡片列表等

  • 问题内容: 父类中有一个列表List。保存父项后,已添加或更改的子项应通过hibernate保存/更新。 我找到了很多解释,但是,我只是没有使它起作用。 Parent.class试试A Parent.class试试B 孩子被添加到新的父母。之后两者都保存 但是在冲洗时,出现以下错误: 有人看到我的错误吗? 非常感谢!! 问题答案: 我想如果您从第一条评论中回答这个问题,我们就会遇到这种情况: 你有

  • 通过nhibernate保存父对象的子对象有时只会导致不在表中插入子对象。这种方法在大多数情况下都有效,但在数千次中,只有几次孩子失踪。 这是一个大型多线程应用程序。 以下是子映射: 和儿童班: 父映射: 下面是父类 添加父项和子项的代码如下所示: 检查调用方是否已开始事务的机制似乎没有任何错误,并且调用方在不抛出异常并记录它的情况下不会回滚。我没有发现任何交易被回滚的痕迹。 父映射中的级联选项有

  • 问题内容: 我正在与Resque- worker(5名工人)一起工作。现在,当这项工作完成/完成时,我想触发另一个工作程序,该工作程序处理先前存储在db中的数据。什么是最合适的方法? 问题答案: 我不确定这是否有帮助,但是您看过这颗宝石吗?这样,您可以跟踪给定作业的状态,以查看其完成时间。但是我深感没有新的自动触发功能。

  • 嗨,我发现了这个使用注释的pdfbox示例: https://svn.apache.org/repos/asf/pdfbox/trunk/examples/src/main/java/org/apache/pdfbox/examples/pdmodel/addannotations.java 当我尝试在netbeans中运行它时,除了在输出中打印之外,什么也没有发生:

  • 我和JNI有一个Android项目。在实现侦听器类的CPP文件中,有一个回调x()。调用x()函数时,我想调用java类中的另一个函数。然而,为了调用该java函数,我需要访问JNIEnv*。 我知道在回调的同一个cpp文件中,有一个函数: 当