2016-04-27 10 views
0

私のアプリは、sdk 19以下のバージョンに対してNoClassDefFoundErrorを提供します。 私は今、私は同様app-> module settings - android - sdkに変更android:NoClassDefFoundError for Android 4.4およびそれ以下

compileSdkVersion 19 
    buildToolsVersion "23.0.1" 
    defaultConfig { 
     applicationId "com.idg.gatcamail" 
     minSdkVersion 19 
     targetSdkVersion 19 
     multiDexEnabled = true 
    } 

にそれを変更しようとした私のGradle

android { 
    compileSdkVersion 23 
    buildToolsVersion "23.0.1" 
    defaultConfig { 
     applicationId "com.idg.mail" 
     minSdkVersion 14 
     targetSdkVersion 23 
     multiDexEnabled = true 
    } 

でいました。 これらの変更で私はプロジェクトを作りましたが、それでも私のandroid 4.4で同じエラーが発生し、より高いバージョンで動作します。

クラスは、ネットワーク操作を処理するコードで定義されたクラスです。

は、どのように私はそれがmultidex問題であることはほぼ確信しているこの問題

+1

何のクラスのために、あなたは例外がありますか? –

+0

それは私が定義したJavaクラスで、サーバからデータを取得する仕事を主に行います。 – png

+0

これは 'multiDexEnabled'オプションによっても引き起こされる可能性があります。あなたはそれが真実に設定されなければならないと確信していますか? –

答えて

2

のデバッグを行うことができます。 sdk 21で正常に動作していれば、それはマルチディックスの問題です。 Multidex

あなたはApplicationクラスのカスタム実装を使用している場合、それはMultiDexApplicationクラスを拡張することがあります。

はこちらの公式情報です。また、グラデルフラグが必要です。カスタムアプリケーションクラスを使用していない場合は、マニフェストに記載されている項目を追加してください。

編集:ほとんど忘れてしまった - あなたは依存関係を追加しました、multidexがこのライブラリで提供されています。compile 'com.android.support:multidex:1.0.1'

+0

@Tuff、はい –

+0

私は既にgradleフラグを持っていましたが、アプリケーションクラスは変更されませんでした。それはどのように> sdk-21で動作しますか?この変更により、両方のバージョンで動作しますが、それ以前のバージョンで動作した方法 – png

+0

@preetha MultidexはDalvikの問題です。Android 5+ではDalvikの代わりにARTがあります。したがって、api 21+には64kのメソッド制限がありません:) – 3mpty

関連する問題