我的 Android 应用使用的 JAR 依赖于 java.time
中的一些类,例如 LocalTime
,因此至少需要 Java 8。
网络上的多个消息来源指出,更高版本的 Android 和工具链支持 Java 8。
我使用 gradle 构建我的应用程序,但不使用(或希望使用)Android Studio。我使用该插件的 3.1.4 版本(最新版本与 Gradle 4.4 兼容,该版本随撰写本文时最新的 Ubuntu LTS 18.04 一起提供)。最低 SDK 为 14,目标为 26。构建工具版本为 27.0.3。
应用程序构建并安装得很好,但是当它尝试使用其中一个类时,它会崩溃并出现异常:
Caused by: java.lang.NoClassDefFoundError: Failed resolution of: Ljava/time/LocalTime;
问题:
java.time
在支持 Java 8 的 Android 版本上可用吗?- 如果是,最低 API 版本是多少? (我在Anbox上进行了测试,它支持API 25。)
- 我还缺少什么吗?
最佳答案
Is java.time available on Android versions with Java 8 support?
是的。
If so, what is the minimum API version?
LocalDateTime
在 API 级别 26 及更高版本上可用,如 the JavaDocs 中所述。 (见右上角)。
Anything else I am missing?
您可以考虑使用a backport Java 8 日期/时间 API 的一部分。
关于android - 在 Android 上使用 java.time 时出现 NoClassDefFoundError,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56904936/