アプリで厄介なバグが発生しました。
Android 5.0.1/5.0.2 を実行している私の Nexus 5/7 では、すべて正常に動作します。ただし、以前のバージョン (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バージョンでこれらの問題を引き起こす理由は何ですか?