Duration.seconds 的 NoClassDefFoundError

NoClassDefFoundError for Duration.seconds

我尝试从 kotlin 1.4 更新到 1.5,并且正在更新已弃用的方法。 其中一种方法是持续时间为秒,然后转换为分钟。

durationInSeconds.seconds.inMinutes

我改成了:

Duration.seconds(durationInSeconds).inWholeMinutes.toDouble()

问题是这在编译时工作正常,但在运行时出现以下错误:

java.lang.NoSuchMethodError: 'double kotlin.time.DurationKt.getSeconds(int)'

是否有针对上述问题的解决方案,或者我现在应该坚持使用 kotlin 1.4 吗?

Duration API changes in Kotlin 1.5 是实验性的,需要明确选择加入。您可能会错过这个。

如果您想选择加入,Duration APIs 的使用必须用

标记

@kotlin.time.ExperimentalTime

@OptIn(kotlin.time.ExperimentalTime::class)

您还可以查看 here 精细的选择加入控件。