无法在android studio中解析Arrays.stream
我试图在Android Studio中使用lambda表达式来 我在编译“无法解析方法无法在android studio中解析Arrays.stream,android,android-studio,Android,Android Studio,我试图在Android Studio中使用lambda表达式来 我在编译“无法解析方法流”时出错 其他Lambda表达式(比如单击事件)正在运行,我的应用程序gradle中的目标是java 1.8: compileOptions { sourceCompatibility JavaVersion.VERSION_1_8 targetCompatibility JavaVersion.VERSION_1_8 incremental = false; } 在File->p
流”
时出错
其他Lambda表达式(比如单击事件)正在运行,我的应用程序gradle中的目标是java 1.8:
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
incremental = false;
}
在File->projectstructure
下,我正在使用嵌入式JDK,即使切换到最新的java8jdk,我仍然会收到错误
有趣的是,如果我切换回版本_1_7,那么我之前工作的lambda语句会给出一个编译错误
如何让这个过滤器在Android Studio中工作?Java8语言功能和Java8API之间存在差异。Android只支持每一个的一个子集。 lambda是一种Java8语言特性。而流API是Java8API中引入的API 语言功能由编译器实现,可能需要一些API支持,而Java API需要在设备上提供 这意味着您可以将lambdas与minSdkVersion<24的应用程序一起使用,但不能使用流API,因为它只是大于等于24的sdk的一部分
在其他“Java技术”中也有同样的情况。通常,Eclipse编译器的源兼容性为1.8,目标兼容性为1.7,这将允许您使用lambdas,但不允许使用streams(在java7虚拟机上运行时,在java8虚拟机上可以工作)您的编译器配置中是否有旧的rt.jar?@PaulHicks您能指出我在哪里检查编译器配置吗?Nougat之前的Androids不支持Java 8。@SergeyGornostaev为什么Lambda可以工作?
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
incremental = false;
}