Android IN Java 8 java.time

标签 android java-8 java-time android-7.0-nougat

我更新到最新的 Android N sdk。我唯一不明白的是为什么我不能将 java.time 导入到我的代码中?我以为Java8可以通过Android N获得。那为什么谷歌没有添加java.time包?

最佳答案

java.time 包仅在 API 26 (Android O) 中添加: https://developer.android.com/reference/java/time/package-summary.html

更新

从 Android Gradle 插件 4.0 版开始,您可以使用 java.time API 的子集(以及许多其他 Java 8 语言 API)无需您的应用需要最低 API 级别:https://developer.android.com/studio/write/java8-support#library-desugaring

The following set of APIs are supported when building your app using Android Gradle plugin 4.0.0 or higher:

  • Sequential streams (java.util.stream)
  • A subset of java.time
  • java.util.function
  • Recent additions to java.util.{Map,Collection,Comparator}
  • Optionals (java.util.Optional, java.util.OptionalInt and java.util.OptionalDouble) and some other new classes useful with the above APIs
  • Some additions to java.util.concurrent.atomic (new methods on AtomicInteger, AtomicLong and AtomicReference)
  • ConcurrentHashMap (with bug fixes for Android 5.0)

要启用对这些语言 API 的支持,需要在 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.4'
}

关于Android IN Java 8 java.time,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36000997/

相关文章:

android - Lollipop : Unwanted light menu on DarkActionBar

Android资源编译失败: inner element must either be a resource reference or empty

java - 运行时级别的 lambda 和方法引用之间有什么区别?

java - java.time 中的 Resoverstyle.STRICT 错误

android - 在 Intel CPU 上运行 KitKat 虚拟设备

java - 如何将日期从 DatePickerDialog 返回到 Mainactivity

java - 迭代Java8时更新列表中的元素

android - 如何使用lambda表达式替换匿名类android

java - 将约会存储在 SQL 数据库(例如 Postgres)中以与 java.time 框架一起使用

Java 8 - ZonedDateTime 的 DateTimeFormatter 和 ISO_INSTANT 问题