NoClassDefFoundError debajo del SDK 21
Acabo de experimentar un error incómodo en mi aplicación.
En mi Nexus 5/7, con Android 5.0.1 / 5.0.2, todo funciona bien. Sin embargo, si intento ejecutar exactamente el mismo código en un dispositivo con una versión anterior (probado 4.4.4 y 4.3) me sale el siguiente error:
03-13 13:49:41.140 21714-21714/? E/dalvikvm﹕ Could not find class 'com.default.package.application.model.Appcomponent', referenced from method com.default.package.application.controller.DatabaseHandler.getScreenComponents
03-13 13:49:41.140 21714-21714/? E/dalvikvm﹕ Could not find class 'android.support.v7.app.ActionBarActivityDelegate$1', referenced from method android.support.v7.app.ActionBarActivityDelegate.<init>
03-13 13:49:41.140 21714-21714/? E/dalvikvm﹕ Could not find class 'android.support.v7.app.ActionBarActivityDelegateHC', referenced from method android.support.v7.app.ActionBarActivityDelegate.createDelegate
03-13 13:49:41.140 21714-21714/? E/dalvikvm﹕ Could not find class 'android.support.v7.app.ActionBarActivityDelegateBase', referenced from method android.support.v7.app.ActionBarActivityDelegate.createDelegate
03-13 13:49:41.150 21714-21714/? E/dalvikvm﹕ Could not find class 'android.support.v7.app.ActionBarActivityDelegate$ActionBarDrawableToggleImpl', referenced from method android.support.v7.app.ActionBarActivityDelegate.getDrawerToggleDelegate
03-13 13:49:41.150 21714-21714/? E/dalvikvm﹕ Could not find class 'android.support.v7.internal.view.SupportMenuInflater', referenced from method android.support.v7.app.ActionBarActivityDelegate.getMenuInflater
03-13 13:49:41.150 21714-21714/? E/dalvikvm﹕ Could not find class 'android.support.v7.app.ActionBarActivityDelegate$ActionBarDrawableToggleImpl', referenced from method android.support.v7.app.ActionBarActivityDelegate.getV7DrawerToggleDelegate
03-13 13:49:41.150 21714-21714/? E/AndroidRuntime﹕ FATAL EXCEPTION: main
Process: com.default.package, PID: 21714
java.lang.NoClassDefFoundError: android.support.v7.app.ActionBarActivityDelegateHC
Ya he intentado agregar la biblioteca support.v7 como jar, pero no hace ninguna diferencia. Pero dado que funciona en dispositivos Lollipop, esto no tendría sentido de todos modos.
¿Podría ser que hay algún problema con respecto al cambio Dalvik / Art? O tal vez el hecho de que tuve que usar com.android.support:multidex:1.0.0 ya que es una aplicación bastante grande.
Actualizar: Intenté eliminar algunas dependencias para estar por debajo del límite del método de 65k. Después de eso, la aplicación se ejecutó en dispositivos 4.4.4 y 4.3. Todo lo que hice para habilitar el soporte multidex fue configurar
multiDexEnabled true
en la sección defaultConfig y agregando
compile 'com.android.support:multidex:1.0.0'
a continuación en la sección de dependencias de mi build.gradle.
¿Alguna idea de por qué esto causa estos problemas en las versiones anteriores de Android?