NoClassDefFoundError For IClass$DefaultImpls 在 Kotlin 中为接口编写默认方法时

NoClassDefFoundError For IClass$DefaultImpls when writing default method for interface in Kotlin

我在 Kotlin 中有一个接口 MyInterface,其中一些方法有默认实现。此外,我还有另一个接口 IClass,它扩展了 MyInterface,用 Java 编写。最后,我有一个 class MyClass 实现了用 Kotlin 编写的 MyInteface。现在,当我 运行 我的代码时,出现以下错误。

java.lang.ClassNotFoundException: myPackage.IClass$DefaultImpls

我测试了 Kotlin 1.2.51 和 1.3.0

当我在 Kotlin 中编写 IClass 时,一切都按预期工作。 我的第一个代码有什么问题?

您可能想用 JvmDefault in Kotlin. It's a new feature described in detail here

注释您的方法

这是 Kotlin 编译器中的 a bug。作为解决方法,请按照另一个答案中的建议使用 @JvmDefault