Android / Kotlin Crash en Start 4.1.2 – ExceptionInInitializerError

Estoy usando Kotlin dentro de mi aplicación; sin embargo, cuando se testing en dispositivos API inferiores, falla al inicio.

Incluso onCreate un depurador al onCreate para la Activity Splash, todavía se bloquea antes de cualquier punto de interrupción.

Pude get una stack de llamadas una vez, pero no puedo get ninguna otra stack de llamadas.

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

 ╔════════════════════════════════════════════════════════════════════════════════════════ ║ Thread: main ╟────────────────────────────────────   ─────────────────────────────────────────────────── ║ AppCompatDelegateImplBase$1.uncaughtException (AppCompatDelegateImplBase.java:66) ║ App$1.uncaughtException (App.java:59) ╟──────────────────────────────────────────────────────────────────────────────────────── ║ java.lang.ExceptionInInitializerError ║ at com.my_company.app.ui.shanetworking.BaseActivity.onStart(BaseActivity.kt:164) ║ at android.app.Instrumentation.callActivityOnStart(Instrumentation.java:1163) ║ at android.app.Activity.performStart(Activity.java:5018) ║ at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2032) ║ at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2084) ║ at android.app.ActivityThread.access$600(ActivityThread.java:130) ║ at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1195) ║ at android.os.Handler.dispatchMessage(Handler.java:99) ║ at android.os.Looper.loop(Looper.java:137) ║ at android.app.ActivityThread.main(ActivityThread.java:4745) ║ at java.lang.reflect.Method.invokeNative(Native Method) ║ at java.lang.reflect.Method.invoke(Method.java:511) ║ at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786) ║ at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553) ║ at dalvik.system.NativeStart.main(Native Method) ║ Caused by: java.lang.NoClassDefFoundError: kotlin.jvm.internal.Intrinsics ║ at com.my_company.app.notification.NotificationType.<init>(NotificationType.kt) ║ at com.my_company.app.notification.NotificationType.<clinit>(NotificationType.kt:10) ║ ... 15 more ╚════════════════════════════════════════════════════════════════════════════════════════ 

Qué puntos en: val intentFilter = IntentFilter(NotificationType.INVITE_RECEIVED)

que es una function de extensión que me permite pasar mi enumeración de NotificationType a IntentFilter.

 enum class NotificationType(private val str: String) { // Orders ORDER_HOST_PAID("ORDER_HOST_PAID"), ... } 

No sé qué causaría este problema, ya que uso Kotlin en otra aplicación sin este problema. ¿Podría ser un problema gradle?

Estoy usando ext.kotlin_version = '1.2.0-beta-88'

Fue porque mientras tenía multiDexEnabled true , no ampliaba MultiDexApplication . Eso solo es necesario si admite API 20 o inferior.

Agregar la biblioteca a sus dependencies.

 android { defaultConfig { ... minSdkVersion 15 targetSdkVersion 26 multiDexEnabled true } ... } dependencies { compile 'com.android.support:multidex:1.0.1' } 

Y ampliando MultiDexApplication :

 public class MyApplication extends MultiDexApplication 

Respuesta: https://stackoverflow.com/a/39831657/3106174

Tuve el mismo error y lo resolví con MultiDex, como se describe en este enlace: https://developer.android.com/studio/build/multidex.html