java.lang.NoClassDefFoundError解決

java java.lang.NoClassDefFoundError

最近遇到了多次方法超過65535的問題特來記錄一下


導致NoClassDefFoundError這個錯誤總共有3個原因

1.Java環境變量的配置錯誤,把classpath的環境變量重新配置一遍。

2.加載第三方包的時候報錯,重新再建一個libs包,覆蓋一遍;

3.在5.0以下的機型全部報這個錯誤,5.0以上的全部正常執行,後來才發現原因:我gradle中已經聲明瞭 multiDexEnabled true ,當方法數超過65535時便會自動打出兩個Dex包命名爲 classes.dex classes2.dex ,一些方法被打入了第二個dex包,即classes2.dex中,導致了5.0以下機型無法運行應用報錯,如果想知道導致65535的原因可以查看這個  爲什麼會有65535問題

具體解決方法是添加依賴:compile 'com.android.support:multidex:1.0.1' (支持5.0以下的),然後在項目的application中再添加一個方法:

[java] view plain copy
  1. protected void attachBaseContext(Context context) {  
  2.         super.attachBaseContext(context);  
  3.         MultiDex.install(this);  
  4. }  
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章