Android Room 数据库忽略问题“尝试了以下构造函数,但它们无法匹配”

2024-02-08

我的实体类:

@Entity(tableName = "student")
data class Student(
    var name: String,  
    var age: Int,   
    var gpa: Double,
    var isSingle: Boolean,

    @PrimaryKey(autoGenerate = true)
    var id: Long = 0,    

    @Ignore                           //don't create column in database, just for run time use
    var isSelected: Boolean = false                     
)

然后我像这样插入(测试过androidTest):

val student = Student("Sam", 27, 3.5, true)

studentDao.insert(student)

添加后立即出现此错误@Ignore注解:

C:\Android Project\RoomTest\app\build\tmp\kapt3\stubs\debug\com\example\roomtest\database\Student.java:7: ����: Entities and POJOs must have a usable public constructor. You can have an empty constructor or a constructor whose parameters match the fields (by name and type).
public final class Student {
         ^
  Tried the following constructors but they failed to match:
  Student(java.lang.String,int,double,boolean,boolean,long) -> [param:name -> 
matched field:name, param:age -> matched field:age, param:gpa -> matched 
field:gpa, param:isSingle -> matched field:isSingle, param:isSelected -> 
matched field:unmatched, param:id -> matched field:id][WARN] Incremental 
annotation processing requested, but support is disabled because the 
following processors are not incremental: androidx.room.RoomProcessor 
(DYNAMIC).

由于 Room 在编译期间仍然生成 Java 类,并且问题出在默认值参数上,因此尝试使用@JvmOverloads https://kotlinlang.org/docs/reference/java-to-kotlin-interop.html#overloads-generation对于构造函数:

@Entity(tableName = "student")
data class Student @JvmOverloads constructor(
    var name: String,
    .....  

UPDATE

有趣的是在文档中 https://developer.android.com/training/data-storage/room/defining-data#ignore没有提及对此案进行特殊处理。和这个问题 https://issuetracker.google.com/issues/154420356已经存在用于修复此文档。

From 这个问题 https://issuetracker.google.com/issues/70762008至于问题本身,结论是:

使用 @JvmOverloads 应该可以。在不远的将来有一天,我们可能会生成 Kotlin,这将不再是问题

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Android Room 数据库忽略问题“尝试了以下构造函数,但它们无法匹配” 的相关文章

  • Android 应用程序在后台时如何从 firebase-message 获取数据

    我正在使用 firebase console 发送 firebase 消息 这些消息应包含如下所示的附加数据 目的是在我的应用程序的 web 视图中打开特定的 URL 我设置了清单和 firebase 类来获取消息 在我的 firebase
  • Android Volley 对于一个请求返回两次结果

    我两天来一直在试图解决这个问题 但我完全被难住了 由于某种原因 我向队列发送一个请求 但 volley 返回两次 这会调用侦听器两次并使列表视图中的结果加倍 我打开了 Volley 的日志记录 可以看到请求被添加到队列中并返回 然后几秒钟后
  • 如何从自定义视图访问主机片段的生命周期范围?

    我需要在自定义视图中使用协程 看完这个之后 我相信我最好的选择是使用生命周期范围作为协程作用域 这样当lifecycleowner被销毁时 它会自动取消 但是我似乎无法访问自定义视图中的生命周期范围 根据文档 https developer
  • 地理编码器返回长度为零的地址

    地理编码器直到今天都工作正常 它开始返回长度为 0 的字符串 注意 这不是 Geocoder 线程的重复 我在启动线程之前使用意图服务和 AsyncTask 来获取它 并且 AsyncTask 方法在 8 个月内工作正常 检查这段代码 ht
  • Android 中的振动器

    如何创建Vibrator对象并调用vibrate函数 http developer android com reference android os Vibrator html http developer android com refe
  • Android:图形布局不起作用 - 不显示任何内容

    我的情况是 我曾经制作过一个android项目 2 2版本 但很快需要格式化我的电脑 格式化后 我再次下载了 eclipse 但是当我导入项目时 我无法使用 xml 的 图形布局 菜单 它没有向我显示如下图所示的任何内容 http img5
  • Kotlin Android Studio - Var 在 SDK 29 中被视为 val

    我在 Kotlin 中遇到了一件非常奇怪的事情 我有 var myClipboard getSystemService CLIPBOARD SERVICE as ClipboardManager var myClip ClipData Cl
  • 使用 SharedPreferences 从 ListView 保存数据

    我尝试寻找答案 但找不到我要找的东西 这是我第一次尝试保存数据 使用 SharedPreferences 所以我不太确定我在做什么 要点是 用户在 EditText 中输入内容后 它会填充 ListView 但我也希望这样 当执行此操作时
  • 如何避免 Android 游戏中的时钟漏洞?

    我需要测量一段可以持续几个小时的时间 我假设执行此操作的正常方法是这样的 Date date new Date wait some time new Date getTime date getTime 但是用户是否可以将 Android 的
  • Android 模拟器无法与 Xamarin/Visual Studio Mac 配合使用

    你好 我真的很难让 Android 模拟器在我的 Mac 上运行 我需要采取哪些步骤才能使其正常工作 我在 MacOS Catalina 上安装了 Visual Studio 2019 这是一个新的空白 Xamarin Forms 项目 我
  • 向 Android 操作栏添加按钮

    我如何制作带有文本的按钮 在操作栏中带有图像 如下所示 是否可以使用内置的 android 按钮或图像按钮在操作栏中执行如下操作 我正在使用 appcompat 来使用操作栏 是的 如果需要 您可以膨胀自定义操作栏 Override pro
  • 如何判断手机是否有刘海

    如果存在缺口 我需要修改应用程序的工具栏 现在 该凹口隐藏了工具栏中的一些内容 if Build VERSION SDK INT Build VERSION CODES LOLLIPOP Build VERSION SDK INT Buil
  • 是否可以为 DialogFragment 制作动画?

    我尝试了有关片段动画的各种示例 但没有任何反应 所以 DialogFragment 不是 正确的 片段吗 或者我在这里遗漏了什么 FragmentTransaction ft getFragmentManager beginTransact
  • Gradle 构建失败 - 无法解压

    我正在使用 android studio 做一个项目 最近它显示了一个错误your SDK is missing or out of date所以 我再次下载了SDK 现在它显示一个错误 Gradle Build failed 错误如下 E
  • @android的含义

    我想问一下是什么意思 android as in android id android id list 我在不同的 android 示例和教程中看到过它 我也用谷歌搜索过它 我发现的唯一解释是 列表和空 ID 是由 Android 平台为我
  • 解析JSON数据并将其放入gridview中

    我正在开发一个应用程序 我必须在其中解析JSON数据并且必须将它们放入自定义中gridview 它应该是这样的 到目前为止 我已经在 asynctask 中解析了 JSON 数据并获取了这些值 这是我的代码 private class ge
  • Android - 有没有办法监听 GPS 是否启用或禁用

    我编写此代码是为了接收位置更新 PendingIntent launchIntent PendingIntent getBroadcast context 5000 intent 0 manager requestLocationUpdat
  • 清单合并失败:需要为 显式指定 android:exported

    我的清单文件有问题 错误消息 清单合并失败 android 需要为 明确指定导出 面向 Android 12 及更高版本的应用需要指定显式值android exported当相应的组件定义了意图过滤器时 有关详细信息 请参阅 https d
  • 在 Exif 中写入 XPKeywords

    我想在 Jpeg 图像中写入 XPKeywords 到目前为止 我正在使用 Sansaleen java api 在 Jpeg 图像中写入 Exif 标签 我能够编写大多数标签 例如主题 评论 作者 评级 但无法编写 Windows XP
  • popBackStack导致反复调用fragment的oncreateView

    我有 3 个片段 A B C 我编写了一段代码来替换它们并维护 backstack public void addFragment Fragment fragmentToAdd String fragmentTag FragmentMana

随机推荐

  • Visual Studio 2008:关闭 css 类验证

    有没有办法阻止 Visual Studio 2008 在编辑页面和用户控件时检查 css 类是否存在 将虚拟样式表放在每个用户控件上似乎很荒谬 是的 有办法 转到工具 gt 选项 gt 文本编辑器 gt CSS gt CSS 特定 这里有一
  • 什么时候使用静态变量?

    我目前正在 C 中做一个需要大量渲染的项目 并且在几乎所有类中 都有一个用于缩放渲染的整数类型常量值 我知道我可以在一个地方将这个常量定义为普通变量 然后将其传递 但 这看起来确实很麻烦 什么时候可以在 C 中使用静态变量 解决我的问题的最
  • iOS 推送通知中的多行标题

    我正在为一个具有 iOS 和 Android 版本的应用程序集成 FCM 目前 对于 iOS 我想以多行形式发送标题 我该怎么做呢 我正在尝试使用 Firebase 控制台进行测试 但似乎没有什么对我有用 我尝试过这些 n br n r n
  • Python-请求如何在发布之前调用js函数来计算一些值?

    我使用请求 2 2 1 来登录网址http tx3 netease com logging php action login 但是这个url的登录逻辑与Django的csrf token机制不同 即 当你获取这个url时 有两个导入值for
  • jQuery Spinner:非数值

    我正在使用 jQuery Spinner 设置了最小值 0 和最大值 500 如何防止用户在输入框中直接输入非数字值 或0 500范围之外的值 当用户使用微调器按钮时 最小值和最大值起作用 但在输入表单中键入内容时则不起作用 You can
  • 如何使用 Spring Boot 通过电子邮件发送文件而不先将其存储在存储中? [复制]

    这个问题在这里已经有答案了 我正在开发一个 Spring Boot 应用程序 在我的项目中 我正在创建一个 xlsx 文件 然后我必须使用 Spring Boot 通过电子邮件发送 我可以使用 apache poi 创建该文件 但稍后通过邮
  • 忽略 CalledProcessError

    我正在使用subprocess模块和check output 在我的Python脚本中创建一个虚拟shell 它对于返回零退出状态的命令运行良好 但是对于不返回零退出状态的命令 它会返回异常 而不打印在普通shell的输出中显示的错误 例如
  • Javascript 函数的工作方式类似于 ActionScript 的 Normalize(1)

    我需要一个返回 xy 点标准化数字的公式 类似于 actionscript 的 normalize 函数 var normal x pt1 x pt2 x y pt1 y pt2 y normal Normalize 1 this I do
  • 带有构建和源子目录的 Makefile

    我正在尝试申请this https stackoverflow com questions 4036191 sources from subdirectories in makefile and this https stackoverfl
  • 从也是渲染目标的纹理中采样

    我知道这在技术上不受支持 据我所知 这是未定义的行为 但是从也被写入的纹理中采样真的是一件非常可怕的事情吗 我问这个问题是因为我需要从深度纹理中读取数据 我也需要写入该深度纹理 如果我不能这样做 这意味着我将不得不复制深度纹理 如果这没什么
  • DataGridView 数据绑定

    我举一个简单的例子来解释我想要的 我定义了一个名为Student 它有两个性质 Name and Subjects public class Student public string Name public List
  • 无法使用 kafkajs 连接到种子代理

    我正在尝试使用kafkajs为了创建一个卡夫卡消费者 但是 连接到 kafka 时出现错误 BrokerPool Failed to connect to seed broker trying another broker from the
  • Django Rest Framework 在创建记录后设置一个只读字段

    我在用着Django 2 x and Django REST Framework 我有一个模型contact作为外键 class AmountGiven models Model id models UUIDField primary ke
  • YouTube API v3 TotalResults 字段在不应该返回的情况下返回了 1 000 000

    1 我正在使用 YouTube API v3 当我发送此请求时 https www googleapis com youtube v3 search part id type video key MY KEY maxResults 50 p
  • NSArray 中的 NSString

    我正在尝试从 Array 创建一个字符串 但是 如何生成它是有条件的 如下所述 NSArray array NSArray arrayWithObjects Hello World nil array componentsJoinedByS
  • 仿蓝牙人机界面设备

    我想知道应用程序是否有可能通过 Android 设备的蓝牙模拟人机接口设备 在我的上下文中 这将是一个模拟鼠标的应用程序 应该被计算机识别为蓝牙鼠标 理想情况下 这应该可以在 java 中实现 我知道这个问题过去已经被问过好几次了 但我想知
  • 如何在 Maven 之上通过 Netbeans 创建/使用类库?

    这似乎是一个愚蠢的问题 但我有点依赖 Netbeans 7 1 向导 似乎没有选择可以做到这一点 我的网络应用程序是用 Maven 构建的 我想将它的一些包分解成一个独立构建和维护的类库 特别是 JPA 部分 但这不重要 然后我想从原始 W
  • 开发一个Android应用程序以支持英语和阿拉伯语“布局对齐”

    我正在开发一个 Android 应用程序来支持 En Ar 但我面临一个问题 如果用户从 En 更改为 Ar 用户界面的对齐方式必须从 从左到右 变为 从右到左 例子 文本视图 编辑文本 这是在恩 但在 Ar 中应该是 编辑文本 文本视图
  • 在嵌入式c中通过RS232处理ASCII命令

    我的微控制器有一个 RS232 接口 带有一组预定义的命令 有数百个命令 例如PRESSURE 50可设定压力为50 LIMIT 60可以将限制设置为 60 目前 这是使用一系列嵌套的 switch 语句来处理的 但这似乎是一个不优雅的解决
  • Android Room 数据库忽略问题“尝试了以下构造函数,但它们无法匹配”

    我的实体类 Entity tableName student data class Student var name String var age Int var gpa Double var isSingle Boolean Primar