Android Studio-Didn't find class XXX on path: DexPathList [zip file "/data/app/packagename/base.apk]
阿新 • • 發佈:2019-01-09
錯誤描述
錯誤表現在:安裝成功後,點開應用就 Crash 。
就是之前正常的專案,某一天就突然這樣的,我也很是無語。
錯誤提示很長,主要資訊就是下面這些資訊:
Caused by:
java.lang.ClassNotFoundException: Didn't find class "XXX" on path:
DexPathList[[zip file "/data/app/com.chemao.certification-2/base.apk"],
nativeLibraryDirectories=[/data/app/com.chemao.certification-2/lib/arm, /vendor/lib, /system/lib]]
- 1
- 2
- 3
- 4
Caused by:
java.lang.NoClassDefFoundError: Class not found using the boot class loader; no stack available
- 1
- 2
- 3
錯誤解決
在網路上搜了這類問題的解決方案。分以下幾種:
1.so 庫載入的問題,解決方法是請合理設定 abiFilters;
2.gradle 版本和 gradle tools 的版本問題
3.Android Studio clean 和 rebuild 後就能解決。
4.檢查 Android Studio 的 instant run 是否開啟,若開啟,請關閉。
但是,很遺憾,我的都不是。
我一直相信應該不是程式碼的問題,因為這個問題是某一天突然出現的,而且是偶現。然後今天另外一個剛剛還好好的專案,執行也出現了此類問題, 所幸是上午剛提交過,使用git status
命令發現修改了以下檔案:
改動範圍是:
於是我在 Project Structure 中檢查了JDK 路徑的設定,如下,使用的是以下路徑 Android Studio 中內建的 JDK。
然後我修改為電腦本地下載的 JDK路徑,如下:
這種方法解決了我兩個專案報的這個錯誤。
更新:
現實實力打臉,今天這個錯誤又再次浮現了,看來不是 JDK 的鍋呢。
解決方法:
刪除專案結構中的 .gradle
錯誤思考
之所以 didn’t find class 找不到類,就是因為類在編譯打包的過程中,沒有打包上。
如果是因為 so 庫的原因,我還能理解,但是我這個 JDK 路徑的原因和解決方法,表示真的很是困惑,思考不出來原因,至今都很是費解。
本來以為是JDK 設定的問題,但是後來問題又出現了,刪除 .gradle
資料夾後,重新編譯安裝,問題解決。看來問題並不是那麼簡單。
心好累,這個問題解決的好像補補丁一樣。