装了jdk1.8好久了也没玩过1.8的新特性,虽然看过不少文章(好吧,是我太懒不想动),于是今天就试一下
通过个人踩坑,android studio使用lambda表达式,需要配置两点
1:项目的build.gradle中需要写入
dependencies {
classpath 'me.tatarka:gradle-retrolambda:3.2.5'
}
2:app的build.gradle中需要写入
apply plugin: 'me.tatarka.retrolambda'
android {
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
}
否则会遇到一堆编译错误
比如:
编译器 (1.8.0_66) 中出现异常错误。如果在 Java Bug Database (http://bugreport.java.com/bugreport/) 中没有找到该错误, 请在该数据库中建立 Bug。请在报告中附上您的程序和以下诊断信息。谢谢。
com.sun.tools.javac.code.Symbol$CompletionFailure: 找不到java.lang.invoke.MethodType的类文件
Error:Execution failed for task ':app:compileDebugJavaWithJavac'.
> Compilation failed; see the compiler error output for details.
再比如:
Error:(23, 38) 错误: -source 1.7 中不支持 lambda 表达式
(请使用 -source 8 或更高版本以启用 lambda 表达式)
再比如:
com.android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException: Process 'command 'C:\Java\jdk1.8.0_66\bin\java.exe'' finished with non-zero exit value 1
祝君好运。