【发布时间】:2020-01-06 16:29:53
【问题描述】:
我正在尝试将 Android 应用的 build.gradle 文件转换为 Kotlin DSL。 这个文件有这样的功能:
def getLastCommitHash() {
def stdout = new ByteArrayOutputStream()
exec {
commandLine 'git', 'rev-parse', '--short', 'HEAD'
standardOutput = stdout
}
return stdout.toString().trim()
}
我转换成这个:
fun getLastCommitHash() {
val stdout = ByteArrayOutputStream()
exec {
commandLine("git", "rev-parse", "--short", "HEAD")
standardOutput = stdout
}
return stdout.toString().trim()
}
我收到 Unresolved reference: ByteArrayOutputStream 错误,应用将其更改为 java.io.ByteArrayOutputStream() 的导入显示 Unresolved reference: io 错误。
我做错了什么吗?提前致谢。
【问题讨论】:
-
在this answer 中找到几乎相同的函数并将其转换后,我遇到了同样的问题。因提出我的确切问题而被投票赞成。
-
在 gradle/kotlin 中,java 值隐藏了包名,使得从
java.*导入任何东西几乎是不可能的 这个问题的答案将回答“你如何引用 java 包名,而它是被 kotlin 中的变量遮蔽了?”
标签: android gradle kotlin gradle-kotlin-dsl