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

Estoy trabajando en un proyecto de Java y dentro de este proyecto hice mi primer bash con Kotlin. Empecé a convertir algunas classs en Kotlin con el convertidor JavaToKoltin proporcionado en Intellij Idea. Entre otras, mis excepciones personalizadas ahora se convierten en Kotlin. Pero con esto, el event handling excepciones ya no funciona correctamente.
Si lanzo una de mis excepciones personalizadas (por ejemplo, MyCustomKotlinException.kt ) dentro del código java, la exception no queda atrapada (ver código a continuación).

 // 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 ... } } } 

Entonces, ¿alguien puede explicarme por qué la exception no es atrapada? MyCustomKotlinException henetworkinga de Kotlins RuntimeException , que es solo un alias de java.lang.RuntimeException .

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

Actualizar:
Dividí la parte de lanzamiento en 2 líneas (creación y lanzamiento de instancias) y descubrí que el problema no es el lanzamiento. El bloque try se deja después de la creación de la instancia. ¿Hay algún problema con la creación de mi instancia de esta class de Kotlin?

Actualización2:
Agregué un segundo bloque catch con Throwable y atrapa el siguiente Throwable.

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

Actualización3:
Se modificó el título para corregir el error y se corrigió el problema al agregar todos los files de proyecto a jar (ver respuesta a continuación). Agregar el Kotlin runtime lib a gradle no funciona para mí.

Agregar todos los files del proyecto al file solucionó el problema. build.gradle la siguiente línea a mi 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) } } } 

Voy a decir que estás tratando de ejecutar el código de Kotlin sin la biblioteca kotlin-runtime

Compruebe qué sistema está usando y agregue el file jar necesario. Puede verificar que este es su problema al empacar su proyecto en un file .jar y ejecutarlo con la biblioteca de time de ejecución

Necesita configurar su proyecto con kotlin. Por lo tanto, en Android Studio: 1. click Herramientas => kotlin => Configurar kotlin en el proyecto 2. Luego, en la comprobación de dialog: Todo el module que contiene los files de kotlin 3. y select la versión 4. presione Aceptar Listo.

Tuve el mismo problema, comstackndo mi proyecto con Ant en la console. He editado kotlin-stdlib.jar en classpath y el problema se ha ido.

  • Establezca el adaptador de ViewPager a través de data binding
  • La function de extensión de kotlin no entiende cómo funciona esto
  • Kotlin REPL con Android Classes unStub! Ed
  • ¿Cómo puedo depurar mi kotlin koan?
  • Spring Boot no inicia el registrador automáticamente cuando usa @Cacheable
  • Cómo documentar un parámetro de constructor primario con Kotlin Dokka
  • Property setter con diferente tipo
  • Sin metadatos android.content.SyncAdapter
  • @uncheckedVariance en Kotlin?
  • Extensión sintética Kotlin para ver
  • Robolectric addResolveInfoForIntent no funciona