在build.gradle.kts中用def报错:Unresolved reference: def 如何解决?
解决build.gradle.kts中"Unresolved reference: def"错误
def是Groovy DSL(对应后缀为.gradle的构建脚本)里用来声明动态类型变量的关键字,但你当前使用的是Kotlin DSL(后缀为.gradle.kts),Kotlin语法不支持def,这就是报错的原因。
你需要将Groovy风格的代码改成Kotlin风格的写法,替换后的代码如下:
val apikeyPropertiesFile = rootProject.file("apikey.properties") val apikeyPro = Properties() apikeyPro.load(FileInputStream(apikeyPropertiesFile))
补充说明:
- Kotlin中用
val(不可变变量)或var(可变变量)替代Groovy的def,根据变量是否需要重新赋值选择即可,这里用val更合适。 - 如果需要从properties文件中读取具体配置项,比如
API_KEY,可以用apikeyPro.getProperty("API_KEY")。 - 建议添加异常处理,避免文件不存在或读取失败导致构建中断,示例:
val apikeyPropertiesFile = rootProject.file("apikey.properties") val apikeyPro = Properties() runCatching { apikeyPro.load(FileInputStream(apikeyPropertiesFile)) }.onFailure { println("加载apikey.properties失败:${it.message}") }
内容的提问来源于stack exchange,提问作者Re Za
相关产品推荐
相关产品推荐

