首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

Android 調試報錯 java.lang.ClassNotFoundException: Didn't find class "ixz.fish_help_app.fish_app" 解決

     編輯:程式設計綜合問答

錯誤堆棧核心

java.lang.RuntimeException: Unable to instantiate application ixz.fish_help_app.fish_app
Caused by: java.lang.ClassNotFoundException: Didn't find class "ixz.fish_help_app.fish_app"
on path: DexPathList[[zip file "/data/app/ixz.fish_help_app-2.apk"],nativeLibraryDirectories=[...]]

原因分析

  1. Application 類名/包名錯誤:AndroidManifest.xml 中 <application android:name="ixz.fish_help_app.fish_app"> 指定的類不存在或拼寫錯誤(大小寫敏感)。
  2. 類未編譯進 APK:
    • 源文件 fish_app.java 不在正確包目錄下 (ixz/fish_help_app/)。
    • 構建腳本 (Gradle) 未包含該模塊/源集。
    • Instant Run / 編譯緩存導致類缺失(Clean Project → Rebuild)。
  3. MultiDex 問題:方法數超過 65K,未啟用 MultiDex,導致主 Dex 缺少 Application 類。
    解決:defaultConfig { multiDexEnabled true },Application 繼承 MultiDexApplication 或重寫 attachBaseContext 調用 MultiDex.install(this)。
  4. ProGuard 混淆:釋放包混淆移除了 Application 類。
    解決:-keep class ixz.fish_help_app.fish_app { *; }。
  5. Windows 正常、真機/模擬器失敗:構建產物差異(如依賴本地 .jar/.aar 未打包、NDK so 架構不匹配)。

排查步驟

  1. 檢查 AndroidManifest.xml android:name 值與 Java/Kotlin 類完全一致。
  2. Build → Clean Project → Rebuild Project。
  3. 查看生成的 APK:Build → Analyze APK,搜索 fish_app.class 是否存在於 classes.dex 中。
  4. 啟用 MultiDex (若方法數超限)。
  5. 檢查 build.gradle 依賴配置、sourceSets、packagingOptions。

快速驗證

// 在 Application 類添加靜態標譤
public class fish_app extends Application {
    static { System.out.println("fish_app loaded"); }
    @Override public void onCreate() { super.onCreate(); Log.d("APP", "onCreate"); }
}

查看 Logcat 是否輸出 "fish_app loaded"。無輸出說明類確實未加載。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved