【发布时间】:2015-12-08 23:13:21
【问题描述】:
尝试实例化Throwable 的对象会抛出以下错误
java.lang.NoSuchMethodError: No direct method <init>(Ljava/lang/String;Ljava/lang/Throwable;ILkotlin/jvm/internal/DefaultConstructorMarker;)V in class Ljava/lang/Throwable; or its super classes (declaration of 'java.lang.Throwable' appears in /system/framework/core-libart.jar)
我尝试的不同方法是:
val s = Throwable()
val t = Throwable("This is a message")
我观察到的一些事情(在 Mac 上使用 Android Studio):
- “Command + click”在 Java 类中
Throwable将我带到java.lang.Throwable而在 Kotlin 类中,它会将我带到Throwable.kt中的Throwable定义 - 我尝试使用
val s = java.lang.Throwable(),但它甚至无法编译
我使用的是 Kotlin 版本1.0.0-beta-2423
我是否遗漏了一些非常明显的东西?
【问题讨论】:
-
你试试如何java.lang.Throwable s = new java.lang.Throwable();
-
它不会编译,因为它不是有效的 kotlin
-
查看答案,您需要传递字符串和空值(我相信这是原因)。