在Android Studio中使用Java 8

4 浏览
0 Comments

在Android Studio中使用Java 8

我正在使用Android Studio,并且想要使用只在Java 8中才可用的Lambda表达式。当我尝试使用时,我得到以下错误信息:该语言级别不支持Lambda表达式。那么,在Android Studio中我该如何进行更改呢?

0
0 Comments

使用Java 8在Android Studio中的原因是,Android只支持Java 6到KitKat(4.4),并在此基础上提供了一些小的语法糖(如diamond操作符),而从Lollipop开始支持Java 7。然而,Java 8的一些新特性,如Lambda表达式,只能通过插件(如gradle-retrolambda或retrolambda)来实现。这些特性可能会在某个时间点被包含在API中,但似乎不太可能很快发生。

解决方法是使用插件gradle-retrolambda或retrolambda来实现Java 8的特性。以下是一个使用gradle-retrolambda的示例代码:

// build.gradle文件中添加以下代码
buildscript {
    repositories {
        mavenCentral()
        maven { url 'https://plugins.gradle.org/m2/' }
    }
    dependencies {
        classpath 'me.tatarka:gradle-retrolambda:3.2.5'
    }
}
// app/build.gradle文件中添加以下代码
apply plugin: 'me.tatarka.retrolambda'
android {
    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
    }
}
retrolambda {
    // 配置Java 8的路径
    javaVersion JavaVersion.VERSION_1_8
}
dependencies {
    // 添加retrolambda的依赖
    compile 'net.orfjackal.retrolambda:retrolambda:2.5.6'
}

通过以上配置,就可以在Android Studio中使用Java 8的特性了。

0
0 Comments

Android Studio只支持Java 7,不能更改。但是,如果只想在Android Studio中使用Lambda表达式,可以使用gradle-retrolambda或retrolambda来将retrolambda反向移植到Java 6/7上。

0