为什么Android Studio 3.0不支持默认和静态接口方法?

4

为什么Java 8中的默认和静态接口方法在Android Studio 3.0中不受支持?

代码总是会得到错误提示。

演示代码

build.gradle设置:

compileSdkVersion 26
buildToolsVersion "26.0.2"
defaultConfig {
    applicationId "com.dreamzone.mtime"
    minSdkVersion 18
    targetSdkVersion 26
    versionCode 1
    versionName "1.0"

}

但是Android Studio的文档显示它可以兼容任何API级别。 https://developer.android.com/studio/write/java8-support.html android studio doc

在你截图的那个页面上,你看到了如何启用Java 8支持吗? - OneCricketeer
谢谢。我将 Android 插件更新到 3.0.1 后,终于解决了问题。原来我错过了那个提示。 - Maoran Bian
2个回答

7
你需要在模块的 `build.gradle` 文件中通过 `android` 闭包里的 `compileOptions` 闭包来设置 Java 8 的兼容性:
apply plugin: 'com.android.application'

android {

    // other good stuff here

    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
    }
}

我尝试了编译选项和等级同步消息错误已更改为“错误:需要Jack支持Java 8语言功能。要么启用Jack,要么删除sourceCompatibility JavaVersion.VERSION_1_8。”我发现我忘记更新Android Gradle插件到3.0.0及更高版本,现在没问题了,谢谢。 - Maoran Bian

0

// 只需将minSdkVersion更改为大于26

  defaultConfig {
        applicationId "com.example.myapplication"
        minSdkVersion 26
        targetSdkVersion 30
        versionCode 1
        versionName "1.0
  }

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接