Intereting Posts
Новый фрагмент Kotlin из Recyclerview Как использовать @link и @code в kotlin kDoc Android Kotlin Защищенное свойство предоставляет свой закрытый тип ExpiresLayout Возвращаемое значение для переменной, которая, по-видимому, может быть нулевой, но на самом деле не может Возврат из функции в Kotlin как однострочный, когда объект равен нулю Получите дополнительную строку от активности Kotlin Есть ли такой синтаксис, как #region #endregion в Котлине? Почему функция Kotlin с параметрами по умолчанию создает метод с неиспользуемым параметром Как я могу получить имя свойства Kotlin? Получение NoClassDefFoundError при вызове функции расширения kotlin Проблема с помехами в WebFlux WebTestClient и Kotlin Kotlin – Persist MutableList на SharedPreferences Есть ли способ построить HashSet с функцией инициализации в Котлин? Реализация файла Drag & Drop с помощью LWjGL Когда экземпляр Kotlin (объявленный с помощью модификатора объекта) создается?

Gradle Project: java.lang.NoClassDefFoundError: kotlin / jvm / internal / Intrinsics

Я работаю над проектом Java, и в рамках этого проекта я сделал первую попытку с Kotlin. Я начал конвертировать некоторые классы в Kotlin с конвертером JavaToKoltin, представленным в Intellij Idea. В частности, мои пользовательские исключения теперь превращаются в Котлин. Но с этим обработка исключений больше не работает.
Если я MyCustomKotlinException.kt одно из своих пользовательских исключений (например, MyCustomKotlinException.kt ) в java-коде, исключение не будет найдено (см. Код ниже).

 // Example.java package foo import java.util.*; import java.lang.*; import java.io.*; import foo.MyCustomKotlinException; class Example { public static void main (String[] args) { try { // Do some stuff // if Error MyCustomKotlinException e = new MyCustomKotlinException("Error Message"); throw e; } catch (MyCustomKotlinException e) { // <-- THIS PART IS NEVER REACHED // Handle Exception } catch (Throwable e) { e.printStackTrace(); <-- This is catched } finally { // Finally ... } } } 

Так может кто-нибудь объяснить мне, почему исключение не поймает. MyCustomKotlinException наследуется от Kotlins RuntimeException , которое является просто псевдонимом java.lang.RuntimeException .

 // MyCustomKotlinException.kt package foo class MyCustomKotlinException(err: String) : RuntimeException(err) 

Обновить:
Я разбил часть броска на 2 строки (создание экземпляра и метание) и обнаружил, что проблема заключается не в метании. Блок try остается после создания экземпляра. Что-то не так с моим созданием экземпляра этого класса Kotlin?

Update2:
Я добавил второй блок catch с Throwable и поймал следующий Throwable.

 java.lang.NoClassDefFoundError: kotlin/jvm/internal/Intrinsics ... Caused by: java.lang.ClassNotFoundException: kotlin.jvm.internal.Intrinsics 

Update3:
Изменен заголовок для исправления ошибок и исправлена ​​проблема с добавлением всех файлов проекта в jar (см. Ответ ниже). Добавление KLLL во время выполнения lible к gradle не работает для меня.

Solutions Collecting From Web of "Gradle Project: java.lang.NoClassDefFoundError: kotlin / jvm / internal / Intrinsics"

Добавление всех файлов проекта в банку устранило проблему для меня. Я добавил следующую строку в мой build.gradle

 jar { manifest { attributes ... } // This line of code recursively collects and copies all of a project's files // and adds them to the JAR itself. One can extend this task, to skip certain // files or particular types at will from { configurations.compile.collect { it.isDirectory() ? it : zipTree(it) } } } 

Вам нужно настроить свой проект с помощью kotlin. Итак, в Android Studio:

  1. нажмите Tools => kotlin => Настроить kotlin в проекте

  2. Затем в диалоговом окне: Все модули, содержащие файлы kotlin

  3. и выберите версию

  4. нажмите ОК

Готово.

Я хочу сказать, что вы пытаетесь запустить код Kotlin без библиотеки kotlin-runtime

Проверьте, какую систему вы используете, и добавьте необходимый файл jar. Вы можете убедиться, что это ваша проблема, упаковав проект в файл .jar и запустив его с помощью библиотеки времени выполнения

Имел ту же проблему, скомпилировав мой проект с помощью Ant в консоли. Я выпустил kotlin-stdlib.jar в classpath, и проблема ушла.