Ошибка AAPT2: эта ошибка возникла, как только я обновил свою студию Android до последней версии.

Я попробовал multiDexEnabled true, а также android.enableAapt2=false, но ошибка продолжает появляться. Кажется, возникла какая-то проблема со сборкой. Что это?

Попробуйте изменить android.enableAapt2=false на: _2_ и _3_ У меня это работает.


person Reevanth Lama    schedule 23.01.2018    source источник
comment
есть ли у тебя какое-нибудь решение?   -  person Izabela Orlowska    schedule 23.01.2018
comment
какие решения для этого?   -  person Vishal Thakkar    schedule 04.05.2018
comment
Это так неприятно. Это тоже не сработало. ; - \   -  person Dr. aNdRO    schedule 08.07.2018


Ответы (5)


попробуйте выполнить:

person Adnan Ali    schedule 30.10.2018
comment
@ReevanthLama, можете ли вы опубликовать весь журнал сборки при запуске ./gradlew clean assemblyDebug? - person Mike S.; 20.01.2019

если не работает, попробуйте использовать Clean и Rebuild проект. Наконец, перейдите к

./gradlew clean
./gradlew assemble

Файлы> Недействительные кеши

Проблема в файлах PNG, которые могут быть повреждены. Иногда изображения отображаются как PNG, но не являются настоящими PNG.

person Oussema Aroua    schedule 23.01.2018
comment
попробуйте удалить папку _1_ и пересобрать свой проект - person Izabela Orlowska; 23.01.2018
comment
Да, это помогает находить ошибки в файлах xml. В котлине очень сложно найти ошибки в xml файлах. Причина ошибки не указана. В терминале после выполнения вышеуказанных команд я легко получил журнал ошибок - person Oussema Aroua; 25.01.2018
comment
это действительно способ отловить эти скрытые ошибки, например, я забыл добавить '#' в строку цветового кода, вместо приятной ошибки, которую я получал консольную ошибку звездной войны, которую корабль вот-вот уничтожит ... почему вы делаете это в Google - person Naveen Kumar M; 23.05.2018
comment
Я получаю это в AS версии 3.1.1: 'xargs' не распознается как внутренняя или внешняя команда, работающая программа или командный файл - person Sim; 11.07.2018

Вы можете получить список таких изображений, набрав следующий код в терминале Android

После этого вы можете преобразовать их в PNG и попробовать еще раз.

find . -type f -name "*.png" | xargs -L 1 -I{} file  -I {} | grep -v 'image/png; charset=binary$' 

Не добавляйте этот android.enableAapt2=false, поскольку он устарел и не будет поддерживаться.

У меня была эта проблема при попытке использовать привязку данных и объявить тег макета. Что я сделал для решения проблемы после стольких попыток, так это то, что в вашем корневом макете, когда вы не используете привязку данных, скажем, например, это

person Aarth Tandel    schedule 02.07.2018
comment
org.gradle.api.tasks.TaskExecutionException: сбой выполнения для задачи ': app: processDebugResources'. по адресу org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions (ExecuteActionsTaskExecuter.java:100) в org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute (Executecuter.execute (Executecuter.execute) или Executecuter.execute (Executecuter.execute (Executecuter.exe) или Executecuter.execute (Executecuter.exe) .api.internal.tasks.execution.OutputDirectoryCreatingTaskExecuter.execute (OutputDirectoryCreatingTaskExecuter.java:51) в org.gradle.api.internal.tasks.execution.SkipUpToDateTaskExecuter.execute (SkipUpToDateTaskExecuter.execute) (SkipUpToDateTaskExecuter.execute. .tasks.execution.ResolveTaskOutputCachingStateExecuter.execute (ResolveTaskOutputCachingStateExecuter.java:54) в org.gradle.api.internal.tasks.execution. .SkipEmptySourceFilesTaskExecuter.execute (SkipEmptySourceFilesTaskExecuter.java:97) в org.gradle.api.internal.tasks.execution.CleanupStaleOutputsExecuter.execute (CleanupStaledleOutputsExecuter.execute (CleanupStaledleOutputsExecuter.exe). tion.ResolveTaskArtifactStateTaskExecuter.execute (ResolveTaskArtifactStateTaskExecuter.java:52) в org.gradle.api.internal.tasks.execution.SkipTaskWithNoActionsExecuter.execute (SkipTaskWithNoActionsExecuter.execute (SkipTaskcWithNoActions). выполнить (SkipOnlyIfTaskExecuter.java:54) в org.gradle.api.internal.tasks.execution.ExecuteAtMostOnceTaskExecuter.execute (ExecuteAtMostOnceTaskExecuter.java:43) в org.gradle.apiExecuterTaskExecuter.java:43) в org.gradle. java. gradle.internal.progress.DefaultBuildOperationExecutor $ RunnableBuildOperationWorker.execute (DefaultBuildOperationExecutor.java:328) в org.gradle.internal.progress.DefaultBuild OperationExecutor.execute (DefaultBuildOperationExecutor.java:199) по адресу org.gradle.internal.progress.DefaultBuildOperationExecutor.run (DefaultBuildOperationExecutor.java:110) в org.gradle.execution.taskgraph.DefaultTaskGraphingGradle.execution. в org.gradle.execution.taskgraph.DefaultTaskGraphExecuter $ EventFiringTaskWorker.execute (DefaultTaskGraphExecuter.java:230) в org.gradle.execution.taskgraph. DefaultTaskPlanExecutor $ TaskExecutorWorker.processTask (DefaultTaskPlanExecutor.java:123) в org.gradle.execution.taskgraph.DefaultTaskPlanExecutor $ TaskExecutorWorker.access $ 200 ($ DefaultTaskPlanExecutorWorker. DefaultTaskPlanExecutor.java:104) в org.gradle.execution.taskgraph.DefaultTaskPlanExecutor $ TaskExecutorWorker $ 1.execute (DefaultTaskPlanExecutor.java:98) в org.gradle.execution.taskgraph.DefaultTaskExutecution:PlanExecutor. gradle.execution.taskgraph.DefaultTaskExecutionPlan.executeWithTask (DefaultTaskExecutionPlan.java:581) в org.gradle.execution.taskgraph.DefaultTaskPlanExecutor $ TaskExecutorWorker.run (DefaultTaskPlanExecutor.java.gradleAcutur.java.gradleArtternalExecutor.java. onExecute (ExecutorPolicy.java:63) в org.gradle.internal.concurrent.ManagedExecutorImpl $ 1.run (ManagedExecutorImpl.java:46) в java.util.concurrent.Thre adPoolExecutor.runWorker (ThreadPoolExecutor.java:1142) по адресу java.util.concurrent.ThreadPoolExecutor $ Worker.run (ThreadPoolExecutor.java:617) по адресу org.gradle.internal.concurrent.ThreadFactory.Impl $ at java.lang.Thread.run (Thread.java:745) Вызвано: org.gradle.tooling.BuildException: не удалось выполнить aapt в com.android.build.gradle.internal.res.LinkApplicationAndroidResourcesTask.invokeAaptForSplit (LinkAppesources.Android : 513) в com.android.build.gradle.internal.res.LinkApplicationAndroidResourcesTask.doFullTaskAction (LinkApplicationAndroidResourcesTask.java:248) в com.android.build.gradle.internal.tasks.IncrementalTask.taskActionjava:106TaskAction (IncrementalTask.taskActionjava:106TaskAction) sun.reflect.NativeMethodAccessorImpl.invoke0 (собственный метод) в sun.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:62) в sun.reflect.DelegatingMethodAccessorImpl.invoke (atjava.MethodAccessorImpl.invoke. вызвать (M ethod.java:498) в org.gradle.internal.reflect.JavaMethod.invoke (JavaMethod.java:73) в org.gradle.api.internal.project.taskfactory.IncrementalTaskAction.doExecute (IncrementalTaskAction.java:46) в org .gradle.api.internal.project.taskfactory.StandardTaskAction.execute (StandardTaskAction.java:39) в org.gradle.api.internal.project.taskfactory.StandardTaskAction.execute (StandardTaskAction.java:26) в org.gradle.api .internal.tasks.execution.ExecuteActionsTaskExecuter $ 1.run (ExecuteActionsTaskExecuter.java:121) в org.gradle.internal.progress. DefaultBuildOperationExecutor $ RunnableBuildOperationWorker.execute (DefaultBuildOperationExecutor.java:336) в org.gradle.internal.progress.DefaultBuildOperationExecutor $ RunnableBuildOperationWorker.execute (DefaultBuildOperationBuildOperationWorker. 199) в org.gradle.internal.progress.DefaultBuildOperationExecutor.run (DefaultBuildOperationExecutor.java:110) в org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeAction (ExecuteActionsTaski.gradle.java.executer.cuteAction (ExecuteActionsTaski:1). .internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions (ExecuteActionsTaskExecuter.java:92) ... еще 32 Подавлено: java.lang.RuntimeException: произошел сбой при обработке некоторых файлов, подробности см. в журналах на com.android.builder.internal.aapt. QueuedResourceProcessor.waitForAll (QueuedResourceProcessor.java:121) в com.android.builder.internal.aapt.QueuedResourceProcessor.end (QueuedResourceProcessor .java: 141) на com.android.builder.internal.aapt.v2.QueueableAapt2.close (QueueableAapt2.java:115) на com.android.build.gradle.internal.res.LinkApplicationAndroidResourcesTask.doFullTaskAction (LinkApplicationT29.js ) ... еще 48 Причина: com.android.ide.common.process.ProcessException: Не удалось выполнить aapt на com.android.builder.core.AndroidBuilder.processResources (AndroidBuilder.java:794) на com.android.build .gradle.internal.res.LinkApplicationAndroidResourcesTask.invokeAaptForSplit (LinkApplicationAndroidResourcesTask.java:491) ... еще 49 Причинено: java.util.concurrent.ExecutionException: java.util.concurrent.ExecutionException: java.util.concurrent.ExecutionException: java.util.concurrent.ExecutionException: java.util.concurrent. .v2.Aapt2Exception: ошибка AAPT2: подробные сведения см. в журналах на com.google.common.util.concurrent.AbstractFuture.getDoneValue (AbstractFuture.java:503) на com.google.common.util.concurrent.AbstractFuture.get (AbstractFuture. java: 482) на com.google.common.util.concurrent.AbstractFuture $ TrustedFuture.get (Abstra ctFuture.java:79) в com.android.builder.core.AndroidBuilder.processResources (AndroidBuilder.java:792) ... еще 50 Вызвано: java.util.concurrent.ExecutionException: com.android.builder.internal.aapt .v2.Aapt2Exception: ошибка AAPT2: подробные сведения см. в журналах на com.google.common.util.concurrent.AbstractFuture.getDoneValue (AbstractFuture.java:503) на com.google.common.util.concurrent.AbstractFuture.get (AbstractFuture. java: 462) на com.google.common.util.concurrent.AbstractFuture $ TrustedFuture.get (AbstractFuture.java:79) на com.android.builder.internal.aapt.v2. QueueableAapt2.lambda $ makeValidatedPackage $ 1 (QueueableAapt2.java:177) в java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1142) в $ java.util.concurrent.ThreadPool. .. Еще 1 Причина: com.android.builder.internal.aapt.v2.Aapt2Exception: Ошибка AAPT2: подробные сведения см. В журналах на com.android.builder.png.AaptProcess $ NotifierProcessOutput.handleOutput (AaptProcess.java:463) по адресу com.android.builder.png.AaptProcess $ NotifierProcessOutput.err (AaptProcess.java:415) в com.android.builder.png.AaptProcess $ ProcessOutputFacade.err (AaptProcess.java:332) в com.android.utils.GrabProcessOutput .run (GrabProcessOutput.java:104) - person JohnA10; 26.07.2018

удалить

  <android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:app="http://schemas.android.com/apk/res-auto"
        xmlns:tools="http://schemas.android.com/tools"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        tools:context=".MainActivity">     </android.support.constraint.ConstraintLayout>

и просто поместите его в свой тег макета (то есть, если вы используете привязку данных)

xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:app="http://schemas.android.com/apk/res-auto"
        xmlns:tools="http://schemas.android.com/tools"

и, надеюсь, это сработает. android.enableAapt2=false у меня не сработал, поэтому я должен удалить все и попытаться выяснить, почему я получаю сообщение об ошибке, когда помещаю тег макета и использую привязку данных, поэтому я нашел решение. Надеюсь, это поможет

<layout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools">

</layout>

Это случилось со мной, когда я обновил студию Android до версии 3.4.0. Я изменил файл build.gradle на уровне проекта ...

person CodeAndWave    schedule 03.04.2018

Должны быть ошибки от AAPT2 над трассировкой стека. Можете ли вы попробовать построить снова и опубликовать эти ошибки?

dependencies {
        //classpath 'com.android.tools.build:gradle:3.4.0'    //Previus default set up

       classpath 'com.android.tools.build:gradle:3.3.1' // Now working fine

    }
person Kush    schedule 04.05.2019