让Android(安卓)studio支持java8
16lz
2022-04-24
一:只需要支持Lambda表达式
在app/build.gradle下添加
android { //设置JDK1.8 compileOptions { sourceCompatibility JavaVersion.VERSION_1_8 targetCompatibility JavaVersion.VERSION_1_8 }}buildscript { repositories { mavenCentral() } dependencies { classpath 'me.tatarka:gradle-retrolambda:3.2.5' }}repositories { mavenCentral()}//添加插件apply plugin: 'me.tatarka.retrolambda'
然后就可以使用Lambda表达式了,比如
new Thread(new Runnable() { public void run() { System.out.println("Run!"); } }).start();
可以简化成
new Thread(() ->System.out.println("Run!")).start();
Github
插件:retrolambda
二:Java 8和Jack编译
参考Android官网
android { ... defaultConfig { ... jackOptions { enabled true } } compileOptions { sourceCompatibility JavaVersion.VERSION_1_8 targetCompatibility JavaVersion.VERSION_1_8 }}
注意: 需要使用Android N 也就是API24,以下是官方原话:
To start using these features, you need to download and set up Android Studio 2.1 and the Android N Preview SDK, which includes the required Jack toolchain and updated Android Plugin for Gradle. If you haven’t yet installed the Android N Preview SDK, see Set Up to Develop for Android N.
开启jack编译后,不能使用apt插件,报异常:Error:Could not find property ‘options’ on task ‘:app:compileDebugJavaWithJack’.参考:google issues
补充
可以使用annotationProcessor代替apt插件,之后即可使用jack编译
更多相关文章
- Android(安卓)so库编译错误 java.lang.UnsatisfiedLinkError: da
- Android(安卓)HAL:helloworld例程
- 解决jdk1.6已经安装,编译android源码报错问题
- Android(安卓)反编译,修改,重新打包,签名
- R.stamp Error 1
- Android应用程序线程消息循环模型分析(4)
- android下mm模块出现编译错误问题
- android 开发 @override 编译错误 解决办法
- Android(安卓)build失败 原因总结: