1. 程式人生 > >Android Studio-Didn't find class XXX on path: DexPathList [zip file "/data/app/packagename/base.apk]

Android Studio-Didn't find class XXX on path: DexPathList [zip file "/data/app/packagename/base.apk]

錯誤描述

錯誤表現在:安裝成功後,點開應用就 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 資料夾後,重新編譯安裝,問題解決。看來問題並不是那麼簡單。

心好累,這個問題解決的好像補補丁一樣。