Android Studio如何支持java8特性

Android Studio对Java8特性的支持

Android Studio 3.0及以上版本支持所有Java7语言功能,以及部分Java8语言功能,这里要注意一下,不是所有Java8特性都支持。

Android官网罗列的:支持的Java 8语言功能和API

使用默认工具链

所谓默认工具链,就是Android studio官方自带的工具集,用于Java8特性编译处理,非第三方工具,当然兼容性和稳定性更好,必须优先使用啊。

要开始使用受支持的Java8语言功能,请更新Android插件到3.0.0(或更高版本)。然后,针对使用(包括在源代码中或通过依赖项使用)Java8语言功能的每个模块,在其build.gradle文件中添加以下代码:

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

迁移至默认工具链

从 Jack 迁移

Jack工具链已经废弃,最好是迁移到默认工具链。

要停用Jack并切换至默认工具链,只需从您的模块build.gradle文件中移除jackOptions 块即可:

android {
    ...
    defaultConfig {
        ...
        // Remove this block.
        jackOptions {
            enabled true
            ...
        }
    }

    // Keep the following configuration in order to target Java 8.
    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
    }
}

从 Retrolambda 迁移

与 Android Studio的默认工具链相比,Retrolambda缺少对使用Java8语言功能的第三方库的支持。要迁移到默认工具链,请从您的项目级build.gradle文件中移除Retrolambda依赖项:

buildscript {
  ...
   dependencies {
      // Remove the following dependency.
      classpath 'me.tatarka:gradle-retrolambda:<version_number>'
   }
}

同时移除每个模块build.gradle文件中的Retrolambda插件和retrolambda块:

// Remove the following plugin.
apply plugin: 'me.tatarka.retrolambda'
...
// Remove this block after migrating useful configurations.
retrolambda {
    ...
    // If you have arguments for the Java VM you want to keep,
    // move them to your project's gradle.properties file.
    jvmArgs '-Xmx2048m'
}

停用Java8语言特性支持

如果您遇到与Java 8语言功能支持相关的问题,可在gradle.properties文件中加入以下代码来停用此支持:

android.enableDesugar=false
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值