Android Gradle CompilationFailedException после обновления Android Studio

При создании проекта я получаю следующую ошибку:

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:50)
    at org.gradle.api.internal.tasks.compile.JdkJavaCompiler.execute(JdkJavaCompiler.java:35)
    at org.gradle.api.internal.tasks.compile.NormalizingJavaCompiler.delegateAndHandleErrors(NormalizingJavaCompiler.java:98)
    at org.gradle.api.internal.tasks.compile.NormalizingJavaCompiler.execute(NormalizingJavaCompiler.java:51)
    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.internal.tasks.compile.incremental.IncrementalCompilationFinalizer.execute(IncrementalCompilationFinalizer.java:39)
    at org.gradle.api.internal.tasks.compile.incremental.IncrementalCompilationFinalizer.execute(IncrementalCompilationFinalizer.java:24)
    at org.gradle.api.tasks.compile.JavaCompile.performCompilation(JavaCompile.java:207)
    at org.gradle.api.tasks.compile.JavaCompile.compile(JavaCompile.java:133)
    at com.android.build.gradle.tasks.factory.AndroidJavaCompile.compile(AndroidJavaCompile.java:125)
    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.IncrementalTaskAction.doExecute(IncrementalTaskAction.java:46)
    at org.gradle.api.internal.project.taskfactory.StandardTaskAction.execute(StandardTaskAction.java:39)
    at org.gradle.api.internal.project.taskfactory.StandardTaskAction.execute(StandardTaskAction.java:26)
    at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter$1.run(ExecuteActionsTaskExecuter.java:121)
    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:199)
    at org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:110)
    at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeAction(ExecuteActionsTaskExecuter.java:110)
    at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:92)
    at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:70)
    at org.gradle.api.internal.tasks.execution.OutputDirectoryCreatingTaskExecuter.execute(OutputDirectoryCreatingTaskExecuter.java:51)
    at org.gradle.api.internal.tasks.execution.SkipUpToDateTaskExecuter.execute(SkipUpToDateTaskExecuter.java:62)
    at org.gradle.api.internal.tasks.execution.ResolveTaskOutputCachingStateExecuter.execute(ResolveTaskOutputCachingStateExecuter.java:54)
    at org.gradle.api.internal.tasks.execution.ValidatingTaskExecuter.execute(ValidatingTaskExecuter.java:60)
    at org.gradle.api.internal.tasks.execution.SkipEmptySourceFilesTaskExecuter.execute(SkipEmptySourceFilesTaskExecuter.java:97)
    at org.gradle.api.internal.tasks.execution.CleanupStaleOutputsExecuter.execute(CleanupStaleOutputsExecuter.java:87)
    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:199)
    at org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:110)
    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:123)
    at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$TaskExecutorWorker.access$200(DefaultTaskPlanExecutor.java:79)
    at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$TaskExecutorWorker$1.execute(DefaultTaskPlanExecutor.java:104)
    at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$TaskExecutorWorker$1.execute(DefaultTaskPlanExecutor.java:98)
    at org.gradle.execution.taskgraph.DefaultTaskExecutionPlan.execute(DefaultTaskExecutionPlan.java:626)
    at org.gradle.execution.taskgraph.DefaultTaskExecutionPlan.executeWithTask(DefaultTaskExecutionPlan.java:581)
    at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$TaskExecutorWorker.run(DefaultTaskPlanExecutor.java:98)
    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)

Компилятор Java:

Caused by: org.gradle.api.internal.tasks.compile.CompilationFailedException: Compilation failed; see the compiler error output for details.

Это мой уровень проекта build.gradle:

buildscript {

    repositories {
        google()
        jcenter()
        mavenCentral()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:3.1.0'
        classpath 'com.google.gms:google-services:3.1.1'
    }
}

allprojects {
    repositories {
        google()
        jcenter()
        maven {
            url "https://maven.google.com"
        }
        maven {
            url "https://jitpack.io"
        }
    }
}

task clean(type: Delete) {
    delete rootProject.buildDir
}

Кто-нибудь знает, как это исправить?

Вы уверены, что перед отображаемой вами трассировкой стека нет ничего примечательного?

CommonsWare 31.03.2018 00:24

@CommonsWare Я выделил текст под заголовком Build> Run Build> Run Tasks>: app: compileDebugJavaWithJavac, у каждого из которых был красный восклицательный знак. Есть ли другие данные, которые мне было бы полезно предоставить?

Paradox 31.03.2018 00:26

@CommonsWare У меня также есть это предупреждение: WARNING: Configuration 'compile' is obsolete and has been replaced with 'implementation'. EDIT Теперь переход от компиляции к реализации.

Paradox 31.03.2018 00:26

compile - это просто предупреждение. В представлении «Сборка» вторая кнопка панели инструментов сверху вниз переключает вас между представлением в виде дерева и необработанным выводом консоли Gradle. Вы можете проверить необработанный вывод, чтобы увидеть, есть ли какие-либо детали ошибки компиляции Java, на которые намекает исключение из вашего вопроса.

CommonsWare 31.03.2018 00:29

@CommonsWare, спасибо. Мне удалось определить, что какой-то код, использующий ArticleListAdapter для неиспользуемого класса, вызвал ошибку. После удаления этого вместе с изменением компиляции на реализацию на моем уровне приложения build.gradle решил это.

Paradox 31.03.2018 00:33
44
5
35 647
6
Перейти к ответу Данный вопрос помечен как решенный

Ответы 6

Ответ принят как подходящий

Я решил это с помощью предложения @CommonsWare перейти на вторую кнопку панели инструментов представления сборки сверху вниз, которая переключает между древовидным представлением и необработанным выводом консоли Gradle. Ошибка показала, что это было вызвано использованием устаревшего представления ArticleListAdapter. Удаление этого исправило ошибку.

Другое предупреждение было исправлено путем изменения compile на implementation в build.gradle уровня приложения.

Вау, это было очень полезно. Я также видел только «Причина: org.gradle.api.internal.tasks.compile.CompilationFailedExcep‌tion: Ошибка компиляции; подробности см. В выводе ошибок компилятора». и это представление сборки было тем, где была информация. Спасибо, @CommonsWare!

Lucy 28.04.2018 02:10

Боже мой, все это в Build View. Большое спасибо.

Swathi 30.07.2018 19:58

Отлично !! Очень полезно, я добавлю к нему только команду --scan внутри параметров командной строки, например: Настройки-> Сборка, Выполнение, Развертывание-> Компилятор ---> Текстовое поле Параметры командной строки - (внутри текстового поля написать) -> --scan

sealroto 25.09.2018 18:37

Рад, что смог помочь :)

Paradox 01.12.2018 20:37

@Paradox, Отлично ... В моем случае это была обычная ошибка компиляции кода, но из-за какой-то странной проблемы студия Android не показывала ее. Переключение на просмотр с помощью этого переключателя показало мне класс, содержащий ошибку. Потратил часы на эту глупость. Еще раз спасибо.

Perry 12.12.2018 12:43

Отличный @Paradox! Не знаю, почему я всю жизнь следил за неправильным просмотром журнала сборки !!

Ali Akram 20.02.2019 09:21

Очень полезный ответ.

Ajay Prajapati 25.04.2019 12:55

Спасибо за Paradox, его ответ мне помог.

в последней версии Android Studio, значок был изменен

В моем случае эта проблема возникла из-за некоторых ошибочных операторов импорта после удаления класса. Я смог найти где, с подтвержденным ответом MOmen zaquot.

jan 11.05.2019 19:57

Рад помочь вам :)

Momen Zaqout 19.07.2019 21:40

Просто удалите версию Gradle от последней до любой более низкой версии (3.3.1)

Разрешите использовать деприминированный NDK следующим образом:

  • Перейти на gradle.properties
  • Добавьте это: android.useDepricatedNdk = true

TL; DR: запустить со сканированием.

Я столкнулся с этой же проблемой несколько минут назад. В дополнение к замечательному ответу @Momen [Изображение размещено ниже]. Я сделал дополнительное наблюдение.

Когда я щелкнул значок, как показано на изображении выше, я все еще не мог определить точную проблему, поскольку журналы были едва ли исчерпывающими. Однако под огромной грудой бревен была опция запустить со сканированием.

Щелчок по запустить со сканированием в конечном итоге выделил точную ошибку компиляции.

Я действительно надеюсь, что это кому-то поможет. Веселого кодирования!

надеюсь, это поможет

Настройки-> Сборка, Выполнение, Развертывание-> Компилятор ---> Текстовое поле Параметры командной строки - (запись внутри текстового поля) -> --scan

Пожалуйста, объясните, что делает сканировать и почему он устраняет эту проблему.

Aedvald Tseh 04.09.2019 06:39

Другие вопросы по теме