Java高版本Api在Android中如何使用
发表于:2025-02-21 作者:千家信息网编辑
千家信息网最后更新 2025年02月21日,这篇文章主要介绍"Java高版本Api在Android中如何使用"的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇"Java高版本Api在Android中如何使用"
千家信息网最后更新 2025年02月21日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安全错误
数据库的锁怎样保障安全
asp列表数据库分页代码
软件开发项目进度考核表
h1z1怎么进服务器
2018年网络安全知识大赛
单人生存测试服务器
网络技术与应用大作业路由器
关于网络安全的名字
数据库2012怎么开
查看本地服务器ip和端口号
古诗词 数据库 5万
服务器安全 技术要求
局域网网络安全ppt
考三级网络技术看那本书
小型数据库日期查询
社区网络安全宣传周活动板报
数据库测试连接失败
加强网络安全信息问答题
c盘扩容后无法连接数据库
ubuntu 安装数据库
网络安全法改版
王牌战争进服务器背景房子怎么建
qq空间关了怎么清空数据库
数据库 王珊老师
苹果id链接服务器
做软件开发的想转行
数据库多维表和嵌套表的区别
网络安全教育培训试卷
数据库最大的天文软件
付费转服可以转哪些服务器
普法考试网络安全法禁止