Gradle Kotlin DSL 找不到 java.io 包
Gradle Kotlin DSL can't find java.io package
我正在尝试将 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
错误。
我做错了什么吗?提前致谢。
这是 Android Studio 3.5.6 的问题。升级到 Android Studio 3.6 后一切正常。
我在 intellij idea 的后端项目中遇到了这个问题,我在 build.gradle
文件的顶部添加了这个导入:
import java.io.ByteArrayOutputStream
现在可以使用了。
我的观察:
- 关闭项目
- 删除
.idea
和 .gradle
个文件夹
- 通过选择 root-
build.gradle.kts
和“作为项目打开”打开项目
有帮助。
从 java.io
导入在 在 plugins
块之前工作。我可以使用以下 build.gradle.kts
:
成功地为 Gradle 7.3.2 和 6.9.2 构建 运行
import java.io.ByteArrayOutputStream
plugins {
`java-library`
}
println(ByteArrayOutputStream::class)
如果你 escape 完整的包名,那么你也可以在不导入 class 的情况下使其工作(如上测试):
plugins {
`java-library`
}
println(`java.security`.MessageDigest::class)
我正在尝试将 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
错误。
我做错了什么吗?提前致谢。
这是 Android Studio 3.5.6 的问题。升级到 Android Studio 3.6 后一切正常。
我在 intellij idea 的后端项目中遇到了这个问题,我在 build.gradle
文件的顶部添加了这个导入:
import java.io.ByteArrayOutputStream
现在可以使用了。
我的观察:
- 关闭项目
- 删除
.idea
和.gradle
个文件夹 - 通过选择 root-
build.gradle.kts
和“作为项目打开”打开项目
有帮助。
从 java.io
导入在 在 plugins
块之前工作。我可以使用以下 build.gradle.kts
:
import java.io.ByteArrayOutputStream
plugins {
`java-library`
}
println(ByteArrayOutputStream::class)
如果你 escape 完整的包名,那么你也可以在不导入 class 的情况下使其工作(如上测试):
plugins {
`java-library`
}
println(`java.security`.MessageDigest::class)