1. ホーム
  2. アンドロイド

TaskExecutionException: タスク ':app:transformJackWithJackForDebug' の実行に失敗しました 最も権威と効果のある解決策

2022-02-27 09:26:07

   TaskExecutionExceptionについて。タスクの実行に失敗しました 

               ':app:compileDebugJavaWithJavac'および

              ':app:transformJackWithJackForDebug'とします。

   個人的な被害を通じて、ピットクロールの練習は非常に権威と効果的なソリューションであることが証明された

         プロジェクト自体はうまく実行されているが、ちょうどそう突然、プロジェクトは、以前のuiと機能を変更するには、公開ページの場所を変更する必要があり、以前から唯一の9ボックスのセレクタフォームを使用して複数の画像を選択し、ページ内の画像を表示するには、写真を選択するアルバムを開き、各画像が右上に削除アイコンがあるはずです。あなたは、操作を削除することができます、私の最初の反応は 私の最初の考えは、それが自分のデモで同様の機能を行うことは困難ではなかったということでした、あなたは直接muduleとしてインポートすることができますので、ASファイル-->をクリックします。新しい-->プロジェクトにmudule選択した依存ライブラリをインポートし、私はすべてが非常にスムーズだと思った、問題が発生した結果、コンパイルがエラーを報告した後、大きな赤 以下は、プログラマの脳がリラックスするように、それはあまりにもまぶしいので、赤で投稿されていない、はぁ

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.

問題が発生し、今まで見たことがなかったので、さっそくググってみると、そのようなブログはたくさんあり、主な解決策は以下の通りです。

1. <スパン インクリメンタルコンパイルをオフにし、bulide.gradleファイルのandroid{ ... の下にある compileOptions{} <スパン に行を追加します。 incremental = false

2. プロジェクト内でjava8を使用しているメソッドなどをjava7のものに置き換えるか、java7に戻す。

3. build.gradle(モジュール: Android)で修正された問題を確認する    build.gradleのbuildToolsVersionを最新版にアップグレードしてください。

4. Android Studioのバージョンアップ(Help-> Check for Updates...)とJAVA_HOMEへのパスを設定します。

5. jackOptions { enabled true } を削除する。     

と compileOptions { <未定義
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.
        インクリメンタル false

    }

しかし、一つ一つ試してみてもうまくいかず、やはり解けず、ついに解けず、古いバージョンに戻してやり直すことになったが、やはりここで行き詰まってしまい、ひどい頭痛に襲われ、グーグル、バイドゥと試して、2日間苦労してやっと解けた、幸せは突然やってきた、ハハッ

        app:compileDebugJavaWithJavac の原因は、java jdk 8 のコンパイル方法が以前のバージョンから変更されたため、コード内の構文エラーやクラスパスエラーによってコンパイルに失敗し、この例外が報告されることが判明しました。

  • 古いjavacツールチェインです。
    javac (.java -> .class) -> dx (.class -> .dex)
  • Jackツールチェインの新バージョンです。
    ジャック (.java -> .jack -> .dex)

話を戻して、本当の解決策はここにあるのですが、それは驚くべきものです。

 コマンドラインからプロジェクトのルートに移動するか、Android studioのターミナルから直接行って、以下のようなコマンドを打ちます。

gradlew compileDebug --stacktrace -info  


または

gradlew compileDebug --stacktrace -debug 


  私はこのコマンドを直接使いましたが、最も詳細なエラーメッセージが表示されるので、これを直接使うことをお勧めします。

gradlew compileDebugSources --stacktrace -info  

私も試した-debugコマンドは、エラーメッセージを表示する-infoほどではありませんが、非常に多くの内容を表示します。

最後に、表示されたメッセージの中に、こんなヒントを見つけました。

       私はとても幸運です!!!! 私はとても幸運です!!!! 今後のこの種の問題への対処の一例として

このエラーと似たような別のエラーが表示されます。タスク':app:transformClassesWithMultidexlistForRelease'の実行に失敗し、 'com. TransformException: メインDEXリストの生成中にエラーが発生しました'。もし興味があれば、クリックしてピットクロールのログを見ることができます。

追記:最近、mvvmスキーマを使用する際に、奇妙な例外が発生しました。

Error:Execution failed for task ':app:kaptDebugKotlin'. 詳しくはログをご覧ください

クリーンとrebulidが動作していない、その後Baiduはクラスメートのブログで新しいコマンドを見つけ、エラーの詳細を参照してくださいとエラーの場所を報告することも非常に明確である

ターミナルで、gradlew clean build とコマンドを入力し、Enterします。

結果はこのようになります。

xmlファイルは、エラーレポートの正確な場所のうち、ランタイム直接エラーレポートなしでコンパイルされたので、どのようにclieanと再構築は、エラーがどこにあるかを見つけられませんでした。

もし、前のコマンドがうまく動かないときに変なエラーが出たら、これを試すことができますよ。