Android Studio中Kotlin Duration使用报错的解决方法咨询
解决Kotlin Duration.parse的ExperimentalTime opt-in报错问题
你遇到的报错是因为Duration.parse属于Kotlin的实验性API,这类API还处于测试阶段,需要显式声明同意使用才能正常编译。以下是几种解决方式:
方法1:在使用位置添加注解
直接在调用Duration.parse的函数、类或者代码块上添加opt-in注解:
- 单个函数上添加:
import kotlin.time.ExperimentalTime import kotlin.time.Duration @OptIn(ExperimentalTime::class) fun yourFunction(timeClose: String) { val test: Duration = Duration.parse(value = timeClose) // 其他代码 }
- 或者直接用
@kotlin.time.ExperimentalTime注解效果一致:
@kotlin.time.ExperimentalTime fun yourFunction(timeClose: String) { val test: Duration = Duration.parse(value = timeClose) }
方法2:全局配置模块级opt-in
如果不想在每个使用的地方加注解,可以在模块的build.gradle(或build.gradle.kts)中全局开启该实验性API的opt-in:
Groovy语法(build.gradle)
android { // 其他配置 kotlinOptions { freeCompilerArgs += "-opt-in=kotlin.time.ExperimentalTime" } }
Kotlin DSL语法(build.gradle.kts)
android { // 其他配置 kotlinOptions { freeCompilerArgs.add("-opt-in=kotlin.time.ExperimentalTime") } }
配置后同步gradle,整个模块内使用Duration.parse都无需单独加注解。
方法3:在类级别添加注解
如果整个类都需要使用该实验性API,可以在类上添加注解:
@OptIn(ExperimentalTime::class) class YourClass { fun parseTime(timeClose: String) { val test: Duration = Duration.parse(value = timeClose) } }
内容的提问来源于stack exchange,提问作者mepi0011
相关产品推荐
相关产品推荐

