如何解决Android中的“调用要求API级别为26(当前最小值为25)”错误

时间:2019-06-21 02:06:37

标签: java android localdate localtime

我知道这个问题可能重复,但是我没有找到任何答案,我在需要API 26且设备API为25的Android应用中使用LocalDateTime

我该怎么办?非常感谢您的帮助。

3 个答案:

答案 0 :(得分:5)

在较低版本的Android上使用LocalDateTime的最佳方法是通过减半(您必须拥有4.0或更高版本的Android Gradle插件)。只需将以下行添加到您的app模块gradle文件中:

enter image description here

最后,添加ff。对您的依赖项块的依赖项:

coreLibraryDesugaring 'com.android.tools:desugar_jdk_libs:1.0.10'

答案 1 :(得分:1)

您需要使用https://github.com/JakeWharton/ThreeTenABP才能将LocalDateTime与Android API <26一起使用。

将依赖项添加到您的项目中(请遵循项目自述文件):

implementation 'com.jakewharton.threetenabp:threetenabp:1.2.1'

然后从以下位置更改您的LocalDateTime导入:

import java.time.LocalDateTime;

收件人:

import org.threeten.bp.LocalDateTime;

答案 2 :(得分:0)

您可以使用ThreeTenBP。但是对于android,建议使用Jake Wharton的ThreeTenABP

为什么不使用ThreeTenBP?

  

类似于在Android上使用Joda-Time的问题,Threetenbp使用JAR资源加载时区信息。这是Android上效率极低的机制。

     

该库将时区信息作为标准的Android资产放置,并提供了一个自定义加载程序以有效地对其进行解析。

为什么不使用Joda-Time?

  

Joda-Time有一个非常大的API,它带来了非常大的二进制文件大小和大量的方法。 JSR-310和Joda-Time的创建者还表示,尽管Joda-Time并未损坏,但确实存在设计缺陷。

     

如果您已经在使用Joda-Time,则几乎没有理由进行切换,除非它的大小或方法数量与您相关。但是,对于新项目,该库提供了Java 8中的标准API,它是一个较小的软件包,不仅二进制大小和方法数量大,而且在API大小方面也是如此。

这些解释来自杰克·沃顿的ThreeTenABP。