最近在研究 TDD 開發(fā)模式闲坎,當(dāng)把架子搭好后兰英,發(fā)現(xiàn)執(zhí)行編譯報(bào)錯(cuò)族购。折騰一番后解決了該問題韩脑。遂記錄下來谆奥,希望對同樣遇到問題的同學(xué)會有幫助。
PS: 有很多因素都會導(dǎo)致與此類似的問題菇肃,如果文中的方法不能解決你的問題地粪,可以到評論區(qū)查看樂于分享的簡友們的解決方案,祝各位好運(yùn)琐谤。
錯(cuò)誤內(nèi)容如下:
Error:Execution failed for task ':app:transformClassesWithDexForDebug'.
> com.android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException: Process 'command '/Library/Java/JavaVirtualMachines/jdk1.8.0_51.jdk/Contents/Home/bin/java'' finished with non-zero exit value 1
莫名其妙的錯(cuò)誤蟆技,沒有解決思路。于是上網(wǎng)搜索,參考了多個(gè)方案也沒有解決問題质礼。
但搜索過程還是有收獲的:
- 為了測試方便旺聚,我新建了一個(gè) Java Library 工程用來存放不依賴 Android 系統(tǒng)的類。然后將其添加到 app/build.gradle 作為依賴眶蕉。
dependencies {
...
compile project(':core')
}
當(dāng)我把這行代碼去掉后砰粹,發(fā)現(xiàn)是可以編譯通過的,這就說明問題出在對庫的依賴上妻坝。
- 在搜索解決方案的過程中,發(fā)現(xiàn)大部分遇到此類問題的人都是使用的 JDK 1.8 版本(相信你也應(yīng)該注意到我使用的是哪個(gè)版本了惊窖,如果沒有的話請翻上去看一下_)刽宪。這并不像是偶然現(xiàn)象,于是懷疑 Gradle 與 JDK 1.8 存在兼容性問題界酒。嘗試將工程依賴的 JDK 版本降到 1.7圣拄,再次嘗試編譯,成功毁欣!
小總結(jié):
Gradle 目前還處在積極開發(fā)時(shí)期庇谆,有很多新版本功能都不太穩(wěn)定,建議謹(jǐn)慎更新項(xiàng)目使用的 Gradle 版本凭疮。