我收到此错误:
error: Each bind variable in the query must have a matching method parameter. Cannot find method parameters for :network.
error: Unused parameter: arg0
尝试像这样的Room和Kotlin:
@Dao
interface TokenDefinitionDao {
@Query("SELECT * FROM token_descriptors WHERE network LIKE :network")
fun getAllForNetwork(network: String?): List<TokenDescriptor>
@Delete
fun delete(token: TokenDescriptor)
}
但我正在传递并使用此参数。任何人都可以看到问题是什么,或者可以指出我使用Room with Kotlin的工作示例?
答案 0 :(得分:3)
尝试将“network”参数更改为“arg0”
@Query("SELECT * FROM token_descriptors WHERE network LIKE :arg0")
在较新版本的kotlin和room中,这个问题已得到解决!
答案 1 :(得分:1)
为了避免这个问题,你必须在build.gradle中使用kotlin-kapt插件。
...
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-kapt'
...
android {
...
}
顺便说一下,确保您使用的是kotlin 1.2.0 +