让Android studio支持java8

一:只须要支持Lambda表达式

在app/build.gradle下添加html

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();
  •  

二:Java 8和Jack编译

参考Android官网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.app

开启jack编译后,不能使用apt插件,报异常:Error:Could not find property ‘options’ on task ‘:app:compileDebugJavaWithJack’.参考:google issuesmaven

补充

能够使用annotationProcessor代替apt插件,以后便可使用jack编译 
官方原文gradle

相关文章
相关标签/搜索