【轉(zhuǎn)】TaskExecutionException: Execution failed for task ':app:transformJackWithJackForDebug'有效解決方案

鏈接: https://blog.csdn.net/wjj1996825/article/details/79838430

關(guān)于TaskExecutionException:Execution failed for task

':app:compileDebugJavaWithJavac'和

':app:transformJackWithJackForDebug'.

通過親身受害跪呈,爬坑實(shí)踐證明非常權(quán)威有效的解決方案

項(xiàng)目運(yùn)行本身都是好好的,但就是那么突然,項(xiàng)目需要改一個(gè)地方,在發(fā)布的頁面要修改之前的ui和功能侨核,由之前只能打開相冊(cè)選擇一張照片變?yōu)橛镁艑m格選擇器形式選擇多張圖片并在頁面中以九宮格形式顯示出來圖片并且每個(gè)圖片右上角要帶有刪除的圖標(biāo)笔宿,可以進(jìn)行刪除操作,我第一反應(yīng)是不難振峻,因?yàn)橹白鲞^一個(gè)類似的功能在自己的demo里面公般,可以直接導(dǎo)入作為一個(gè)mudule使用万搔,于是點(diǎn)擊AS的file-->new-->import mudule 選中依賴庫導(dǎo)進(jìn)來了項(xiàng)目中,本以為一切都非常順利俐载,結(jié)果問題出現(xiàn)了蟹略,編譯之后報(bào)錯(cuò)了登失,紅紅的一大片遏佣,哈哈,由于太刺眼揽浙,下面就不貼成紅色了状婶,讓程序員的大腦神經(jīng)放松下吧,哈哈

org.gradle.api.tasks.TaskExecutionException: Execution failed for task ':app:compileDebugJavaWithJavac'.    at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:100)   at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:70)   at org.gradle.api.internal.tasks.execution.SkipUpToDateTaskExecuter.execute(SkipUpToDateTaskExecuter.java:63)   at org.gradle.api.internal.tasks.execution.ResolveTaskOutputCachingStateExecuter.execute(ResolveTaskOutputCachingStateExecuter.java:54) at org.gradle.api.internal.tasks.execution.ValidatingTaskExecuter.execute(ValidatingTaskExecuter.java:58)   at org.gradle.api.internal.tasks.execution.SkipEmptySourceFilesTaskExecuter.execute(SkipEmptySourceFilesTaskExecuter.java:88)   at org.gradle.api.internal.tasks.execution.ResolveTaskArtifactStateTaskExecuter.execute(ResolveTaskArtifactStateTaskExecuter.java:52)   at org.gradle.api.internal.tasks.execution.SkipTaskWithNoActionsExecuter.execute(SkipTaskWithNoActionsExecuter.java:52) at org.gradle.api.internal.tasks.execution.SkipOnlyIfTaskExecuter.execute(SkipOnlyIfTaskExecuter.java:54)   at org.gradle.api.internal.tasks.execution.ExecuteAtMostOnceTaskExecuter.execute(ExecuteAtMostOnceTaskExecuter.java:43) at org.gradle.api.internal.tasks.execution.CatchExceptionTaskExecuter.execute(CatchExceptionTaskExecuter.java:34)   at org.gradle.execution.taskgraph.DefaultTaskGraphExecuter$EventFiringTaskWorker$1.run(DefaultTaskGraphExecuter.java:248)   at org.gradle.internal.progress.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:336)  at org.gradle.internal.progress.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:328)  at org.gradle.internal.progress.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:197)   at org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:107)   at org.gradle.execution.taskgraph.DefaultTaskGraphExecuter$EventFiringTaskWorker.execute(DefaultTaskGraphExecuter.java:241) at org.gradle.execution.taskgraph.DefaultTaskGraphExecuter$EventFiringTaskWorker.execute(DefaultTaskGraphExecuter.java:230) at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$TaskExecutorWorker.processTask(DefaultTaskPlanExecutor.java:124)  at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$TaskExecutorWorker.access$200(DefaultTaskPlanExecutor.java:80)    at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$TaskExecutorWorker$1.execute(DefaultTaskPlanExecutor.java:105)    at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$TaskExecutorWorker$1.execute(DefaultTaskPlanExecutor.java:99) at org.gradle.execution.taskgraph.DefaultTaskExecutionPlan.execute(DefaultTaskExecutionPlan.java:625)   at org.gradle.execution.taskgraph.DefaultTaskExecutionPlan.executeWithTask(DefaultTaskExecutionPlan.java:580)   at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$TaskExecutorWorker.run(DefaultTaskPlanExecutor.java:99)   at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:63)   at org.gradle.internal.concurrent.ManagedExecutorImpl$1.run(ManagedExecutorImpl.java:46)    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)  at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)  at org.gradle.internal.concurrent.ThreadFactoryImpl$ManagedThreadRunnable.run(ThreadFactoryImpl.java:55)    at java.lang.Thread.run(Thread.java:745)Caused by: org.gradle.api.internal.tasks.compile.CompilationFailedException: Compilation failed; see the compiler error output for details. at org.gradle.api.internal.tasks.compile.JdkJavaCompiler.execute(JdkJavaCompiler.java:51)   at org.gradle.api.internal.tasks.compile.JdkJavaCompiler.execute(JdkJavaCompiler.java:36)   at org.gradle.api.internal.tasks.compile.NormalizingJavaCompiler.delegateAndHandleErrors(NormalizingJavaCompiler.java:99)   at org.gradle.api.internal.tasks.compile.NormalizingJavaCompiler.execute(NormalizingJavaCompiler.java:52)   at org.gradle.api.internal.tasks.compile.NormalizingJavaCompiler.execute(NormalizingJavaCompiler.java:37)   at org.gradle.api.internal.tasks.compile.CleaningJavaCompilerSupport.execute(CleaningJavaCompilerSupport.java:35)   at org.gradle.api.internal.tasks.compile.CleaningJavaCompilerSupport.execute(CleaningJavaCompilerSupport.java:25)   at org.gradle.api.tasks.compile.JavaCompile.performCompilation(JavaCompile.java:198)    at org.gradle.api.tasks.compile.JavaCompile.compile(JavaCompile.java:183)   at org.gradle.api.tasks.compile.JavaCompile.compile(JavaCompile.java:120)   at com.android.build.gradle.tasks.factory.AndroidJavaCompile.compile(AndroidJavaCompile.java:49)    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)  at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)    at java.lang.reflect.Method.invoke(Method.java:498) at org.gradle.internal.reflect.JavaMethod.invoke(JavaMethod.java:73)    at org.gradle.api.internal.project.taskfactory.DefaultTaskClassInfoStore$IncrementalTaskAction.doExecute(DefaultTaskClassInfoStore.java:173)    at org.gradle.api.internal.project.taskfactory.DefaultTaskClassInfoStore$StandardTaskAction.execute(DefaultTaskClassInfoStore.java:134) at org.gradle.api.internal.project.taskfactory.DefaultTaskClassInfoStore$StandardTaskAction.execute(DefaultTaskClassInfoStore.java:121) at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter$1.run(ExecuteActionsTaskExecuter.java:122)    at org.gradle.internal.progress.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:336)  at org.gradle.internal.progress.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:328)  at org.gradle.internal.progress.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:197)   at org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:107)   at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeAction(ExecuteActionsTaskExecuter.java:111)    at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:92)    ... 30 more

問題出現(xiàn)了馅巷,以前沒有見過,二話不說膛虫,google搜索解決方案,有很多這樣的博客钓猬,主要的解決方案有以下幾種:

1.關(guān)閉增量編譯稍刀,在bulide.gradle文件中android{ ... } 下compileOptions{}中加一行incremental = false

2.把項(xiàng)目中用到j(luò)ava8的方法等用java7的替換,還是回歸java7敞曹;

3.Check build.gradle(Module: Android) fixed problem 升級(jí)build.gradle中的buildToolsVersion到最新的版本账月;

4.升級(jí)Android Studio的版本(Help->Check for Updates...) 以及 配置JAVA_HOME的路徑;

5.移除jackOptions { enabled true }

和compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
incremental false

}

但是我挨個(gè)兒嘗試后都不見效澳迫,依然無法解決局齿,最后實(shí)在解決不了,只好回退老版本橄登,重新來過抓歼,但依然卡在這個(gè)地方讥此,頭痛的要命,死命google谣妻,百度萄喳,死磕兩天終于找到了解決方案,幸福來的就是這么突然拌禾,哈哈
吐舌頭
偷笑
    原來  app:compileDebugJavaWithJavac 造成的原因是java jdk 8 編譯的方式和之前版本的編譯方式變了取胎,所以代碼里面有語法錯(cuò)誤或者類路徑錯(cuò)誤會(huì)導(dǎo)致編譯不能通過而報(bào)出這個(gè)異常,這里簡(jiǎn)單講下新版和舊版的jdk的編譯方式的區(qū)別湃窍。
  • 舊版 javac 工具鏈:
    javac (.java –> .class) –> dx (.class –> .dex)
  • 新版 Jack 工具鏈:
    Jack (.java –> .jack –> .dex)

回到正題上闻蛀,真正的解決方案在這里,非常神奇:

在命令行中進(jìn)入項(xiàng)目的根目錄您市,或者可以在Android studio的Terminal中直接操作也可以觉痛,然后敲入一個(gè)命令:

gradlew compileDebug --stacktrace -info  

或者:

gradlew compileDebug --stacktrace -debug 

我直接用了這個(gè)命令,這個(gè)顯示的錯(cuò)誤信息最詳細(xì)茵休,建議你直接用這個(gè)薪棒,

gradlew compileDebugSources --stacktrace -info  

-debug的命令我也試了,顯示的非常多榕莺,但不像-info一樣顯示錯(cuò)誤提示的信息非常詳細(xì)俐芯,你可以兩個(gè)都嘗試一下。

最后在出現(xiàn)的信息中找到了這個(gè)提示

image.png
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末钉鸯,一起剝皮案震驚了整個(gè)濱河市吧史,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌唠雕,老刑警劉巖贸营,帶你破解...
    沈念sama閱讀 206,839評(píng)論 6 482
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異岩睁,居然都是意外死亡钞脂,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,543評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門捕儒,熙熙樓的掌柜王于貴愁眉苦臉地迎上來冰啃,“玉大人,你說我怎么就攤上這事刘莹⊙忠悖” “怎么了?”我有些...
    開封第一講書人閱讀 153,116評(píng)論 0 344
  • 文/不壞的土叔 我叫張陵栋猖,是天一觀的道長净薛。 經(jīng)常有香客問我,道長蒲拉,這世上最難降的妖魔是什么肃拜? 我笑而不...
    開封第一講書人閱讀 55,371評(píng)論 1 279
  • 正文 為了忘掉前任痴腌,我火速辦了婚禮,結(jié)果婚禮上燃领,老公的妹妹穿的比我還像新娘士聪。我一直安慰自己,他們只是感情好猛蔽,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,384評(píng)論 5 374
  • 文/花漫 我一把揭開白布剥悟。 她就那樣靜靜地躺著,像睡著了一般曼库。 火紅的嫁衣襯著肌膚如雪区岗。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,111評(píng)論 1 285
  • 那天毁枯,我揣著相機(jī)與錄音慈缔,去河邊找鬼。 笑死种玛,一個(gè)胖子當(dāng)著我的面吹牛藐鹤,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播赂韵,決...
    沈念sama閱讀 38,416評(píng)論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼娱节,長吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了祭示?” 一聲冷哼從身側(cè)響起肄满,我...
    開封第一講書人閱讀 37,053評(píng)論 0 259
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎绍移,沒想到半個(gè)月后悄窃,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體讥电,經(jīng)...
    沈念sama閱讀 43,558評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡蹂窖,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,007評(píng)論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了恩敌。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片瞬测。...
    茶點(diǎn)故事閱讀 38,117評(píng)論 1 334
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖纠炮,靈堂內(nèi)的尸體忽然破棺而出月趟,到底是詐尸還是另有隱情,我是刑警寧澤恢口,帶...
    沈念sama閱讀 33,756評(píng)論 4 324
  • 正文 年R本政府宣布孝宗,位于F島的核電站,受9級(jí)特大地震影響耕肩,放射性物質(zhì)發(fā)生泄漏因妇。R本人自食惡果不足惜问潭,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,324評(píng)論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望婚被。 院中可真熱鬧狡忙,春花似錦、人聲如沸址芯。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,315評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽谷炸。三九已至北专,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間旬陡,已是汗流浹背逗余。 一陣腳步聲響...
    開封第一講書人閱讀 31,539評(píng)論 1 262
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留季惩,地道東北人录粱。 一個(gè)月前我還...
    沈念sama閱讀 45,578評(píng)論 2 355
  • 正文 我出身青樓,卻偏偏與公主長得像画拾,于是被迫代替她去往敵國和親啥繁。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,877評(píng)論 2 345

推薦閱讀更多精彩內(nèi)容