1. 程式人生 > >java.lang.NoClassDefFoundError 錯誤解決思路

java.lang.NoClassDefFoundError 錯誤解決思路

  Process: com.oppo.reader, PID: 20472
    java.lang.NoClassDefFoundError: com.zhangyue.iReader.PDF2.ui.PDFCatalogView$PageChangedListener
        at com.zhangyue.iReader.PDF2.ui.PDFCatalogView.show(PDFCatalogView.java:176)
        at com.zhangyue.iReader.PDF2.ui.PDFCataWindow.show(PDFCataWindow.java
:56) at com.zhangyue.iReader.PDF2.ui.ActivityPDF2.showChapList(ActivityPDF2.java:1556) at com.zhangyue.iReader.PDF2.ui.ActivityPDF2.access$3100(ActivityPDF2.java:143) at com.zhangyue.iReader.PDF2.ui.ActivityPDF2$9$1.run(ActivityPDF2.java:882) at android.os.Handler.handleCallback
(Handler.java:739) at android.os.Handler.dispatchMessage(Handler.java:95) at android.os.Looper.loop(Looper.java:171) at android.app.ActivityThread.main(ActivityThread.java:5720) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.ZygoteInit
$MethodAndArgsCaller.run(ZygoteInit.java:732) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:622)

這個是錯誤日誌,說類找不到。但是PDFCatalogView 這個類都可以找到,裡面的一個子類怎麼可能找不到呢?

因為pdf 是通過android 外掛框架載入的,那麼就去外掛載入框架裡面,打斷點,看找class 的時候,為什麼找不到。
結果發現,不是com.zhangyue.iReader.PDF2.ui.PDFCatalogView$PageChangedListener 這個類找不到,而是他繼承的子類,找不到。我去找了下,果然沒有。

好吧,有時候,說一個類找不到,可能不是這個類找不到,而是這個類依賴的類找不到。注意這個坑啊。