在Android开发中,使用safe args可以保证使用Kotlin中的类型安全编程,但是由于java.time.LocalDate不是Android平台上的类,使用safe args时会出现类型解析错误的问题。解决这个问题的方法是使用Android Desugaring技术。
android { ... compileOptions { sourceCompatibility JavaVersion.VERSION_1_8 targetCompatibility JavaVersion.VERSION_1_8 } ...
//开启Java8支持
compileOptions {
coreLibraryDesugaringEnabled true
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
//配置Java8支持的依赖
dependencies {
coreLibraryDesugaring 'com.android.tools:desugar_jdk_libs:1.1.1'
}
}
import java.time.LocalDate
然后在代码中使用LocalDate的parse函数进行解析:
val myLocalDate = LocalDate.parse(args.my_date)
这样就可以在Android平台上正常解析java.time.LocalDate类型的参数了。