android 支持java 8 stream api不需要minSdkVersion 24

Android 4.0 开始支持java 8 不需要指定minSdkVersion 24

之前想使用java 8 stream api会提示最低版本Call requires API level 24 (current min is 20): java.util.Collection#stream ,这样直接把我劝退了

list.stream()
     .map(……)
     .collect(Collectors.toList()),

现在 Android 4.0 不再要求minSdkVersion 24,低版本也可以使用了,马上尝试一下
需要添加配置:

Android studio 版本是4.0.1
项目的build.gradle 中 gradle升级到4.0.1

//项目的build.gradle
    dependencies {
        classpath 'com.android.tools.build:gradle:4.0.1'
    }

如果用了GreenDao ,修改到版本3.3.0
升级gradle到4.0报错

项目gradle/wrapper/gradle-wrapper.properties 中 gradle升级到6.1.1

#Mon Aug 03 17:08:19 CST 2020
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-6.1.1-all.zip

模块的build.gradle 中

android {
  defaultConfig {
    // Required when setting minSdkVersion to 20 or lower
    multiDexEnabled true
  }

  compileOptions {
    // Flag to enable support for the new language APIs
    coreLibraryDesugaringEnabled true
    // Sets Java compatibility to Java 8
    sourceCompatibility JavaVersion.VERSION_1_8
    targetCompatibility JavaVersion.VERSION_1_8
  }
}

dependencies {
  coreLibraryDesugaring 'com.android.tools:desugar_jdk_libs:1.0.9'
}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
Android 7.0(API级别24)开始支持Java 8的Stream API,因此,在Android 7.0上可以直接使用Stream API来处理集合。但是需要注意的是,Stream API只能在使用Java 8编译器编译的应用中使用,如果你使用的是Android Studio自带的编译器,需要对Gradle配置进行修改,以支持Java 8。 具体来说,要在Android 7.0上使用Java 8的Stream API需要按照以下步骤进行配置: 1. 在app的build.gradle文件中添加以下配置: ``` android { ... defaultConfig { ... jackOptions { enabled true } ... } compileOptions { sourceCompatibility JavaVersion.VERSION_1_8 targetCompatibility JavaVersion.VERSION_1_8 } } ``` 在上面的代码中,我们启用了Jack编译器,并使用sourceCompatibility和targetCompatibility指定了Java版本为1.8。 2. 在build.gradle文件中添加以下配置: ``` dependencies { ... // 用于启用Java 8的支持库 compile 'com.android.support:multidex:1.0.1' compile 'com.android.support:multidex-instrumentation:1.0.1' } ``` 在上面的代码中,我们添加了multidex和multidex-instrumentation库,用于启用Java 8的支持库。 3. 在Application类中启用MultiDex: ```java public class MyApplication extends Application { @Override protected void attachBaseContext(Context base) { super.attachBaseContext(base); MultiDex.install(this); } } ``` 在上面的代码中,我们覆写了Application类的attachBaseContext()方法,并在其中调用了MultiDex.install()方法,以启用MultiDex。 完成以上配置后,就可以在Android 7.0上使用Java 8的Stream API了。例如,我们可以使用以下代码对List<Integer>进行过滤、排序和求和: ```java List<Integer> list = Arrays.asList(1, 2, 3, 4, 5); int sum = list.stream() .filter(i -> i >= 3) .sorted() .mapToInt(Integer::intValue) .sum(); System.out.println(sum); // 输出 12 ``` 在上面的代码中,我们使用了Stream API的filter()、sorted()、mapToInt()和sum()方法,对List<Integer>进行过滤、排序和求和。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值