我正在为 Netbeans 和 Android Studio 使用 Java JDK 版本 1.8.0_60-b27。我无法在我的 Android Studio 项目中导入 java.util.function.Consumer
和 java.util.stream.Stream
包。但我可以在我的 Netbeans 项目中导入相同的内容。这是什么原因?
最佳答案
在 Google I/O 2016 中,他们宣布 Android 现在支持 Java 8 的部分功能,但不是所有功能。
功能如: - 默认和静态接口(interface)方法 - Lambda 表达式(也适用于 API 级别 23 及更低级别) - 可重复的注释 - 方法引用(也适用于 API 级别 23 及更低级别) - 类型注释(也适用于 API 级别 23 及更低级别)
此外,还提供以下 Java 8 语言 API:
反射和语言相关的 API: java.lang.FunctionalInterface java.lang.annotation.Repeatable java.lang.reflect.Method.isDefault() 和与可重复注释关联的反射 API,例如 AnnotatedElement.getAnnotationsByType(Class) 实用程序 API:java.util.function java.util.stream
所有你应该做的就是使用新的 jack 编译器,为此你只需将它添加到你的 gradle 文件 build.gradle "module:app":
android {
...
defaultConfig {
...
jackOptions {
enabled true
}
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
}
引用文献 https://developer.android.com/guide/platform/j8-jack.html https://www.youtube.com/watch?v=B08iLAtS3AQ&feature=youtu.be&t=28m14s
关于java - 在 Android Studio 中导入 java.util.stream.Stream 时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34741393/