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

空间和静态编程语言-获取"查询中的每个绑定变量必须有一个匹配的方法参数。"

高功
2023-03-14

我得到这个错误:

error: Each bind variable in the query must have a matching method parameter. Cannot find method parameters for :network.
error: Unused parameter: arg0

当尝试像这样的Room和静态编程语言时:

@Dao
interface TokenDefinitionDao {

    @Query("SELECT * FROM token_descriptors WHERE network LIKE :network")
    fun getAllForNetwork(network: String?): List<TokenDescriptor>

    @Delete
    fun delete(token: TokenDescriptor)
}

但我正在传递并使用这个参数。有人知道问题是什么,或者能给我举个例子,让我看看和科特林一起使用房间的情况吗?

共有2个答案

金正阳
2023-03-14

为了避免这个问题,你必须在构建中使用kotlin kapt插件。格雷德尔。

...

apply plugin: 'kotlin-android'
apply plugin: 'kotlin-kapt'

...

android {
...
}

顺便说一句,确保您使用的是kotlin 1.2.0

宗政洋
2023-03-14

尝试将“网络”参数更改为“arg0”

@Query("SELECT * FROM token_descriptors WHERE network LIKE :arg0")

在更新版本的kotlin and room中,此问题已修复!

 类似资料:
  • 我正在使用android的房间数据库。在我最近更新到静态编程语言1.7.0之前,它一直运行良好。现在我得到以下错误: 这是我的刀: 这是我的身材 当我将Kotlin降级到1.6.21时,它运行良好。这是科特林病毒还是我做错了什么?

  • 我正在使用带有静态编程语言的android持久性库。 Dao看起来像这样 这对我来说似乎很好,但我得到了这个错误 错误:查询中的每个绑定变量必须有一个匹配的方法参数。找不到:countryId的方法参数 我可以看到参数被命名为,那么可能是什么问题呢? 仅供参考:这是CountryDao_I生成的代码mpl.java 在这种方法中,我看到arg0在方法中的任何地方都没有使用。 编辑:这似乎在新插件中

  • 我想要找到一个文件的名称包含'Bob',并有一个位置在'paducah'或'smyrna'。 以下是我现在所拥有的: 我知道问题出在location数组上,因为如果我将它改为一个没有数组的元素,那么查询就可以正常工作。 这是我能找到的最接近的答案。 它没有工作,我收到以下错误: [term]查询格式错误,应为[END_OBJECT],但找到[FIELD_NAME]

  • 根据这个问题,一个函数可以作为参数传递给另一个函数,如下所示 类似地,我们也可以从类中传递方法 但是如果我们要传递的方法是静态的(在伴随对象中)呢? 我知道,由于它是静态的,我们可以直接调用该方法,而不必将其作为参数传递,然而,在某些情况下(例如利用现有代码时),这仍然是有用的。

  • 如何在for each循环中获取索引?我想为每一次迭代打印数字 例如 在java中,我们有传统的for循环 如何获取i?

  • 问题内容: 我对Java完全不了解,但是在今晚练习时,我发现使用OOP设计时,主类中的每个方法都必须是静态的,对吗?在这段代码中,我无法在不是静态的类中调用方法。 似乎我可能遗漏了为什么要声明一个类是否为静态的问题。谢谢你的帮助! 问题答案: 您可以调用非静态方法,但是只能通过对象来调用。也就是说,您需要在给定对象上调用该方法。 您的主类也可以实例化,因此并非主类中的每个方法都必须是静态的。例如: