1. 程式人生 > >Android studio 出現java.lang.NoClassDefFoundError錯誤的一種解決方案 5.0以下機型無法執行應用報錯

Android studio 出現java.lang.NoClassDefFoundError錯誤的一種解決方案 5.0以下機型無法執行應用報錯

在重構中,添加了一些第三方類庫,使得整個Android程式的方法數超出了65535,這個時候打包時應該出現下面這個錯誤

Process: com.youzhiapp.cityonhand, PID: 13155
java.lang.NoClassDefFoundError: com.umeng.analytics.c

下面是解決方案:

1.在defaultConfig 中已經宣告 multiDexEnabled true 用於啟用MultiDex

2.在依賴中新增 compile 'com.android.support:multidex:1.0.1' 支援包用於5.0以下系統

3.如果你的工程中已經含有Application類,那麼讓它繼承android.support.multidex.MultiDexApplication類,如果你的Application已經繼承了其他類並且不想做改動,那麼還有另外一種使用方式,覆寫attachBaseContext()方法:

public class MyApplication extends FooApplication {
        @Override
    protected void attachBaseContext(Context base) {
        super.attachBaseContext(base);
        MultiDex.install(this);
    }
}