java.lang.ClassNotFoundException: Didn't find class on path: DexPathList 問題處理

今天突然發現APP兼容Android 4.4版本以下有問題,本來想放棄Android 4.4以下版本的,結果領導必須讓兼容!於是發現java.lang.ClassNotFoundException: Didn’t find class on path: DexPathList 報這個錯!

處理之後,總結並分享一下!

1,自定義的MyApplication 需繼承 MultiDexApplication ,並在MyApplication 中重寫方法 attachBaseContext 如下

@Override   
 protected void attachBaseContext(Context base) {
         super.attachBaseContext(base);        
         MultiDex.install(this);  
 }        

如果只是重寫attachBaseContext 這個方法也可以,但是得具體測一下!

2,如果你按照1中處理了,還是這個問題那麼可能是沒有兼容不同手機的cpu的問題,這裏使用abiFilters進行過濾ndk

{            abiFilters   'armeabi-v7a','armeabi-v8a','armeabi','x86_64'            // 還可以添加 'x86', 'x86_64', 'mips', 'mips64'        }

如果比較在意Apk大小的話,需要謹慎處理。

3,以上都處理好了之後,發現android 4.4 以下版本好了,可是用android 4.4 以上版本的手機發現運行不起來了,這個時候需要把Android studio 中Setting 中的 Instant Run 中的√ 取消掉這樣應該就可以了!
在這裏插入圖片描述

當然這樣處理之後,一些手機可能還有問題,這個就需要根據具體原因在另行處理了,如有更好的處理方法,希望可以留言分享!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章