Android Gradle Plugin を4.0.0以上にするとD8/R8のDesugaringによってほぼすべての端末でJava8の追加APIが利用できるようになりますよ、という記事。
設定は以下の通り。coreLibraryDesugaringEnabled
と coreLibraryDesugaring
を追加すれば良いみたい。
android { defaultConfig { //Only 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 { // Dependency with the implementation code for the APIs coreLibraryDesugaring 'com.android.tools:desugar_jdk_libs:1.0.5' }
これまではJava8の一部が使えるだけだったけど、さらに多くのJava8の機能が使えるようになったということかな。といっても本家はすでにJava14だけど。 java.time パッケージのクラスが使えるようになるのは朗報なので適用しておこう。