項目報錯:Caused by: java.lang.ClassNotFoundException: Didn't find class "..."on path: DexPathList


項目報錯:

Caused by: java.lang.ClassNotFoundException: 
 Didn't find class "com.eshore.njb.MyApplication" on path: 
 DexPathList[
 [zip file "/data/app/com.example.administrator.njb-1/base.apk"],
 nativeLibraryDirectories=
 [/data/app/com.example.administrator.njb-1/lib/arm64, /system/lib64, /vendor/lib64, /system/vendor/lib64, /product/lib64]]

原因:

解決方法:
Android的項目目錄里是有兩個build文件夾的,一個是:項目目錄/app/build,另一個是:項目目錄/build。

 

把兩個build都刪掉,然后重新編譯運行即可。

注意:在提交代碼的時候兩個build是不應該提交的。

參考:
安卓開發-Didn’t find class “” on path: DexPathList 錯誤

額外知識:
dex文件:

在Android系統中,dex文件是可以直接在Dalvik虛擬機中加載運行的文件。通過ADT,經過復雜的編譯,可以把java源代碼轉換為dex文 件。 那么這個文件的格式是什么樣的呢?為什么Android不直接使用class文件,而采用這個不一樣文件呢?其實它是針對嵌入式系統優化的結 果,Dalvik虛擬機的指令碼並不是標准的Java虛擬機指令碼,而是使用了自己獨有的一套指令集。如果有自己的編譯系統,可以不生成class文件, 直接生成dex文件。dex文件中共用了很多類名稱、常量字符串,使它的體積比較小,運行效率也比較高。但歸根到底,Dalvik還是基於寄存器的虛擬機 的一個實現。

build文件夾:
代碼編譯后生成的文件存放的位置

報錯二:
阿里雲推送出現:

08-30 16:43:37.917 13303-13480/com.dch.dai I/zygote64: 

Caused by: java.lang.ClassNotFoundException: 

Didn't find class "com.taobao.orange.OrangeConfigListenerV1" on path: 
DexPathList[[zip file "/data/app/com.dch.dai-7AxXfXOeKbkN7nkIXa89ww==/base.apk"],
nativeLibraryDirectories=[/data/app/com.dch.dai-7AxXfXOeKbkN7nkIXa89ww==/lib/arm64,
/system/fake-libs64, 
/data/app/com.dch.dai-7AxXfXOeKbkN7nkIXa89ww==/base.apk!/lib/arm64-v8a,
/system/lib64, 
/vendor/lib64, 
/product/lib64]]

這里寫圖片描述

解決:

不用管 
https://help.aliyun.com/knowledge_detail/52813.html

 
       


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM