Android(安卓)Studio支持Java8方法
16lz
2022-06-15
方法一(项目无apt插件)
在需要支持的module内添加
//支持Java8 defaultConfig.jackOptions.enabled = true compileOptions { sourceCompatibility JavaVersion.VERSION_1_8 targetCompatibility JavaVersion.VERSION_1_8 }
例如
android { compileSdkVersion 26 buildToolsVersion "25.0.3" defaultConfig { applicationId "com.liompei.retrofitdemo" minSdkVersion 19 targetSdkVersion 26 versionCode 1 versionName "1.0" testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" } buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } //支持Java8 defaultConfig.jackOptions.enabled = true compileOptions { sourceCompatibility JavaVersion.VERSION_1_8 targetCompatibility JavaVersion.VERSION_1_8 } }
然后就可以使用Lambda表达式了
但是但是,开启jack编译后,不能使用apt插件了,就是这句话
defaultConfig.jackOptions.enabled = true
如果你的项目需要使用apt插件,同时又想使用Lambda表达式,可以使用下面一种方法(推荐)
方法二(项目有apt插件)
gradle-retrolambda
(最新版本可查看gradle-retrolambda的github链接)
打开Project的build.gradle,添加
classpath 'me.tatarka:gradle-retrolambda:3.6.1'
例如
// Top-level build file where you can add configuration options common to all sub-projects/modules.buildscript { repositories { jcenter()// mavenCentral() } dependencies { classpath 'com.android.tools.build:gradle:2.3.3' classpath 'me.tatarka:gradle-retrolambda:3.6.1' // NOTE: Do not place your application dependencies here; they belong // in the individual module build.gradle files }}allprojects { repositories { jcenter()// mavenCentral() }}task clean(type: Delete) { delete rootProject.buildDir}
下一步,打开要使用Lambda表达式Module的build.gradle
添加
apply plugin: 'me.tatarka.retrolambda'
和
//支持Java8 compileOptions { sourceCompatibility JavaVersion.VERSION_1_8 targetCompatibility JavaVersion.VERSION_1_8 }
例如
apply plugin: 'com.android.application'apply plugin: 'me.tatarka.retrolambda'android { compileSdkVersion 26 buildToolsVersion "25.0.3" defaultConfig { applicationId "com.liompei.retrofitdemo" minSdkVersion 19 targetSdkVersion 26 versionCode 1 versionName "1.0" testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" } buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } //支持Java8 compileOptions { sourceCompatibility JavaVersion.VERSION_1_8 targetCompatibility JavaVersion.VERSION_1_8 }}
这样就可以使用Lambda表达式了,同时可以使用apt插件
测试
//点击事件 findViewById(R.id.btn).setOnClickListener(view -> mTextView.setText("Hello")); //RxJava2 Flowable.just("Hello world").subscribe(System.out::println);
关于Java8,建议看看这篇文章
在Android项目中使用Java8
更多相关文章
- android 邮件地址正则表达式
- Android(安卓)ApiDemos示例解析(83):Graphics->Typefaces
- Android非Kotlin支持项目添加Kotlin代码时的注意点
- 推送sdk (类似百度 推送 ) android mina (待优化... )
- Eclipse 环境下安装PhoneGap开发插件
- Android(安卓)studio配置Opencv开发环境
- Android支持的媒体格式
- android XUtils框架
- 推荐一款视频转换软件免费无插件ipad/iphone/Android/YouTube适