Intereting Posts
Невозможно ли установить ожидания на ленивом свойстве? Как получить статус доставки сообщения с помощью smack? Как обратиться к себе в анонимный класс? Kotlin неразрешимая ссылка в IntelliJ IntelliJ IDEA Не удалось найти org.jetbrains.kotlin: kotlin-gradle-plugins Как мы можем реализовать Observable.flatMapCompletable? HttpException не пойман onError () Строчная интерполяция для двойного числа в Котлине Android Studio – java.io.IOException: Не удалось создать подпись v1 В android kotlin, используя библиотеку степпера, передавая пользовательские значения переключателей по нескольким фрагментам, которые будут использоваться на сводной странице Как правильно выполнять нулевые проверки с использованием функций расширения Kotlin в действии Android Как получить имена и значения параметров метода? Отслеживание сбоев потоков Создайте общий наблюдаемый, который избегает множественного вызова smart cast невозможно, потому что экземпляр является изменяемым свойством

Kotlin – NoSuchMethodError при создании экземпляра Throwable

Попытка создания объектов 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") 

Некоторые вещи, которые я наблюдал (используя Android Studio на Mac):

  • «Command + click» ing on Throwable то время как в классах Java переносит меня на java.lang.Throwable тогда как из класса Kotlin он берет меня в Throwable definition в Throwable.kt
  • Я попытался использовать val s = java.lang.Throwable() но он даже не компилировал

Я использую Kotlin версии 1.0.0-beta-2423

Я пропустил что-то действительно очевидное?

UPD: ошибка исправлена, проблема больше не должна воспроизводиться.

Это ошибка в Kotlin: https://youtrack.jetbrains.com/issue/KT-5910 . Как обходной путь, передайте оба аргумента конструктору Throwable .

В первый раз я натолкнулся на kotlin интересно, сначала посмотрел, я думал, что вы смешиваете javascript и java, но на самом деле.

Я просмотрел документы для котлина, специально для Throwable и интересно, что конструктор выглядит следующим образом:

 Throwable(message: String? = null, cause: Throwable? = null) 

И затем я посмотрел, как инициализировать объекты в Котлине, страшно. И нашел, что это отличное место показывает, как объявлять объекты и обрабатывать нулевые значения. Я объявил Throwable следующим образом:

 //last arg as null - which is the cause var a : Throwable = Throwable("I am Throwable - Kotlin vesion.", null) 

Это работало без ошибок, когда я попробовал его в онлайн- компиляторе / интерпретаторе kotlin, а затем напечатал его следующим образом:

  print(a) print(a.printStackTrace()) 

И я получил следующий результат:

 java.lang.Throwable: I am Throwable - Kotlin vesion. 

Вслед за результатом printStackTrace (), как показано ниже:

 java.lang.Throwable: I am Throwable - Kotlin vesion. at Simplest_versionKt.main(Simplest version.kt:9) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:606) at org.jetbrains.webdemo.executors.JavaExecutor.main(JavaExecutor.java:46) kotlin.Unit