Я просто испытал неудобную ошибку в своем приложении.
На моем Nexus 5/7, работающем под управлением Android 5.0.1/5.0.2, все работает отлично. Однако, если я попытаюсь запустить тот же самый код на устройстве с более ранней версией (проверены 4.4.4 и 4.3), я получаю следующую ошибку:
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
Я уже пытался добавить библиотеку support.v7 в качестве jar, но не имеет значения. Но поскольку он работает на устройствах Lollipop, это все равно не имеет смысла.
Может ли быть какая-то проблема в отношении изменения Dalvik/Art? Или, может быть, факт, что мне пришлось использовать com.android.support:multidex:1.0.0, поскольку это довольно большое приложение.
Обновление: Я попытался удалить некоторые зависимости, чтобы получить ограничение по методу 65k. После этого приложение запускалось на устройствах 4.4.4 и 4.3. Все, что я сделал для поддержки поддержки multidex, устанавливал
multiDexEnabled true
в разделе defaultConfig и добавлении
compile 'com.android.support:multidex:1.0.0'
ниже в разделе зависимостей моего build.gradle.
Любая идея, почему это вызывает эти проблемы в старых версиях Android?