Java高版本Api在Android中如何使用
发表于:2026-10-31 作者:千家信息网编辑
千家信息网最后更新 2026年10月31日,这篇文章主要介绍"Java高版本Api在Android中如何使用"的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇"Java高版本Api在Android中如何使用"
千家信息网最后更新 2026年10月31日Java高版本Api在Android中如何使用
这篇文章主要介绍"Java高版本Api在Android中如何使用"的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇"Java高版本Api在Android中如何使用"文章能帮助大家解决问题。
Android插件开启对新Api的支持
这一天小王导入了一个库,上线之后直接崩了一大片? 找到其中的问题:
什么鬼哦?安卓8.0一下无法使用? 这样上线8.0以下的手机全部闪退了。 查一下才知道需要开启插件启动对Java Api的支持
android { defaultConfig { multiDexEnabled true } compileOptions { // Flag to enable support for the new language APIs coreLibraryDesugaringEnabled true sourceCompatibility JavaVersion.VERSION_1_8 targetCompatibility JavaVersion.VERSION_1_8 }}dependencies { coreLibraryDesugaring 'com.android.tools:desugar_jdk_libs:1.1.5'}一定要开启multiDexEnabled,原理就是编译时会单独打一个dex包,做一些兼容的处理。
常用的需要兼容处理的类:
1. LocalDate日期处理
// 日期 LocalDate today = LocalDate.now(); // 几号 int dayofMonth = today.getDayOfMonth(); // 星期几 int dayofWeek = today.getDayOfWeek().getValue(); // 今年 int dayofYear = today.getDayOfYear(); LocalDate endOfFeb = LocalDate.parse("2018-02-28"); // 取本月第1天: LocalDate firstDayOfThisMonth = today.with(TemporalAdjusters.firstDayOfMonth()); // 取本月第2天: LocalDate secondDayOfThisMonth = today.withDayOfMonth(2); // 取本月最后一天,再也不用计算是28,29,30还是31: LocalDate lastDayOfThisMonth = today.with(TemporalAdjusters.lastDayOfMonth()); // 取下一天: LocalDate firstDayOfNextMonth = lastDayOfThisMonth.plusDays(1); // 取2017年1月第一个周一: LocalDate firstMondayOf2017 = LocalDate.parse("2017-01-01").with(TemporalAdjusters.firstInMonth(DayOfWeek.MONDAY));2. Stream集合流操作
Listwidgets = new ArrayList<>(); widgets.add(new widget(Color.RED, "Name", 1)); int sum = widgets.stream() .filter(w -> w.getColor() == Color.RED) .mapToInt(w -> w.getWeight()) .sum(); List userList = Stream. of(arrayList). map(person -> new User(person.getName())). collect(Collectors.toList()); //peek 和map类似-但是他更强大-它对每个元素执行操作并返回一个新的 Stream Stream.of("one", "two", "three", "four") .filter(e -> e.length() > 3) .peek(e -> System.out.println("Filtered value: " + e)) .map(String::toUpperCase) .peek(e -> System.out.println("Mapped value: " + e)) .collect(Collectors.toList()); //limit 返回 Stream 的前面 n 个元素; //skip 则是扔掉前 n 个元素 List personList2 = persons.stream() .map(Person::getName) .limit(10) .skip(3) .collect(Collectors.toList()); System.out.println(personList2);
和Kotlin的一些操作符有点类型,现在项目都是Kotlin了,一般也用不到这玩意了,如果大家是Java的老项目,希望filter map集合的可以使用stream的api很方便的转换数据。
AGP7编译的问题
之前的项目编译的时候,由于我们的兼容代码是写在子模块的build.gradle的app模块编译之后会merge成功,运行也没有问题。但是前段时间项目升级到AGP之后,无法运行指定的api了,需要在运行模块app的build.gradle中添加兼容代码块才能运行,这里特此记录一下。
... repositories { maven { url 'https://maven.aliyun.com/nexus/content/groups/public/' } google() maven { url 'https://jitpack.io' } mavenCentral() jcenter() } dependencies { classpath 'com.android.tools.build:gradle:7.0.3' classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" classpath 'com.google.gms:google-services:4.3.8' } ...app build.gradle需要添加
android { defaultConfig { multiDexEnabled true } compileOptions { // Flag to enable support for the new language APIs coreLibraryDesugaringEnabled true sourceCompatibility JavaVersion.VERSION_1_8 targetCompatibility JavaVersion.VERSION_1_8 }}dependencies { coreLibraryDesugaring 'com.android.tools:desugar_jdk_libs:1.1.5'}关于"Java高版本Api在Android中如何使用"的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识,可以关注行业资讯频道,小编每天都会为大家更新不同的知识点。
问题
项目
编译
运行
版本
元素
模块
知识
处理
代码
插件
日期
行业
支持
不同
实用
强大
成功
不用
内容
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
有格互联网科技
中关村互联网科技集团
互联网通讯科技
盈实互联网科技
互联网与新科技
艾特科技互联网
成都互联网科技公司
致聘互联网科技
火传媒上海互联网科技
互联网金融 科技创新
山东吉时兔互联网科技有限公司
互联网 科技馆
成都玖崟互联网科技有限公司乐商圈怎么样
云创客互联网科技公司
阿里巴巴算科技企业还是互联网
互联网科技和法律行业
区块链结合互联网科技
怎样加入科技互联网
吉林省码上互联网科技电话
三亚科技创新互联网基地
互联网新科技
科技类互联网
艾特科技互联网
朗涯互联网科技
四川狮子座互联网科技
互联网科技创新企业排名
梅州GM互联网络科技有限公司
互联网公司属于科技吗
北京互联网科技类企业分布
美国五大互联网科技公司市值多少