Error:Error converting bytecode to dex:
Cause: java.lang.RuntimeException: Exception parsing classes
Error:Execution failed for task ':app:transformClassesWithDexForDebug'.
com.android.build.api.transform.TransformException: ... Process 'java.exe' finished with non-zero exit value 1
com.example.Utils),或項目中誤將同一 Java 文件編譯兩次(如同時在 src/main/java 和 src/debug/java 存在同名文件)。support-v4:23.3.0 和 28.0.0)導致方法簽名不一致;./gradlew app:dependencies 分析樹,統一版本或 exclude 传递依赖。compileOptions.targetCompatibility 設為 1.7,或 JDK 編譯器版本與 Android SDK dx 工具不兼容。android {
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
}
multiDexEnabled true 但 Application 未繼承 MultiDexApplication / 未在 attachBaseContext 調用 MultiDex.install(this)。「哈哈,鼓搗了很久終於知道為什麼了。自己在 FaceppDect 誤多寫了一個方法,導致……正如網上資料所說,這個一般是引用包/方法等重復了」
✅ 核心教訓:全局搜索重複方法名/類名,檢查是否誤將同一邏輯寫在兩個文件/模塊中。
# 在項目根目錄執行,查找重複類
find . -name "*.class" -exec basename {} \; | sort | uniq -d
Dex 轉換失敗 90% 由「重複類/方法」引起。優先檢查代碼重複、依賴版本衝突、Java 版本配置、MultiDex 啟用、Instant Run 緩存。善用 gradle dependencies 與 Analyze APK 可視化分析。