我在plugins {}块中复制/粘贴了一些行后得到了这个错误,这些行添加了一些Kotlin特性,如下所示
id: 'kotlin-android'
然后我得到了标题错误我检查了代码,但似乎没有问题
ohtdti5x1#
首先,Gradle构建脚本通常在Groovy(build.gradle)或Kotlin(build.gradle.kts)中定义。由于您使用的是单引号(Kotlin不允许非字符使用单引号),因此我假定您使用的是Groovy。您遇到这个问题的原因是Groovy中的x: y语法通常会转换为在Java中创建一个Map:
build.gradle
build.gradle.kts
x: y
Map
abc: "def"
(应与相同)
mapOf("abc" to "def")
虽然plugins块通常期望插件被定义为对id或alias方法的调用:
plugins
id
alias
plugins { id("java") // Include the built-in Java plugin alias(libs.plugins.example) // Include a plugin defined from a version catalog id("com.example.plugin") version "1.2.3" // Include a 3rd-party "com.example.plugin" plugin at version 1.2.3 }
请注意,在Groovy中,括号对于方法调用是可选的,因此您可能会在文档中看到它们被省略,或者在您的答案中提到:
plugins { id 'kotlin-android' // Note the missing parentheses, and Groovy allows for single-quotes to be used too }
有关更多信息,请参见插件DSL文档。
9avjhtql2#
我解决了从行中删除冒号的问题,如下所示:
id 'kotlin-android'
2条答案
按热度按时间ohtdti5x1#
首先,Gradle构建脚本通常在Groovy(
build.gradle
)或Kotlin(build.gradle.kts
)中定义。由于您使用的是单引号(Kotlin不允许非字符使用单引号),因此我假定您使用的是Groovy。您遇到这个问题的原因是Groovy中的
x: y
语法通常会转换为在Java中创建一个Map
:(应与相同)
虽然
plugins
块通常期望插件被定义为对id
或alias
方法的调用:请注意,在Groovy中,括号对于方法调用是可选的,因此您可能会在文档中看到它们被省略,或者在您的答案中提到:
有关更多信息,请参见插件DSL文档。
9avjhtql2#
我解决了从行中删除冒号的问题,如下所示: