AAPT2错误:检查日志以获取详细信息

时间:2017-12-01 09:03:18

标签: android-gradle

Task :processDebugResources Failed to execute aapt com.android.ide.common.process.ProcessException: Failed to execute aapt
    at com.android.builder.core.AndroidBuilder.processResources(AndroidBuilder.java:796)
    at com.android.build.gradle.tasks.ProcessAndroidResources.invokeAaptForSplit(ProcessAndroidResources.java:551)
    at com.android.build.gradle.tasks.ProcessAndroidResources.doFullTaskAction(ProcessAndroidResources.java:285)
    at com.android.build.gradle.internal.tasks.IncrementalTask.taskAction(IncrementalTask.java:109)
    at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:497)
    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)
    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: java.util.concurrent.ExecutionException: java.util.concurrent.ExecutionException: com.android.tools.aapt2.Aapt2Exception: AAPT2 error: check logs for details
    at com.google.common.util.concurrent.AbstractFuture.getDoneValue(AbstractFuture.java:503)
    at com.google.common.util.concurrent.AbstractFuture.get(AbstractFuture.java:482)
    at com.google.common.util.concurrent.AbstractFuture$TrustedFuture.get(AbstractFuture.java:79)
    at com.android.builder.core.AndroidBuilder.processResources(AndroidBuilder.java:794)
    ... 47 more Caused by: java.util.concurrent.ExecutionException: com.android.tools.aapt2.Aapt2Exception: AAPT2 error: check logs for details
    at com.google.common.util.concurrent.AbstractFuture.getDoneValue(AbstractFuture.java:503)
    at com.google.common.util.concurrent.AbstractFuture.get(AbstractFuture.java:462)
    at com.google.common.util.concurrent.AbstractFuture$TrustedFuture.get(AbstractFuture.java:79)
    at com.android.builder.internal.aapt.v2.QueueableAapt2.lambda$makeValidatedPackage$1(QueueableAapt2.java:179)
    at com.android.builder.internal.aapt.v2.QueueableAapt2$$Lambda$489/579799618.run(Unknown Source)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
    ... 1 more Caused by: com.android.tools.aapt2.Aapt2Exception: AAPT2 error: check logs for details
    at com.android.builder.png.AaptProcess$NotifierProcessOutput.handleOutput(AaptProcess.java:454)
    at com.android.builder.png.AaptProcess$NotifierProcessOutput.err(AaptProcess.java:411)
    at com.android.builder.png.AaptProcess$ProcessOutputFacade.err(AaptProcess.java:332)
    at com.android.utils.GrabProcessOutput$1.run(GrabProcessOutput.java:104)

aapt2日志将保存在哪里? 在迁移到gradle-plugin-3.0.0时,我遇到了此异常。

25 个答案:

答案 0 :(得分:136)

今天早上我遇到了这个问题并找到了解决方案。当您弄乱了一个.xml文件时,会创建此问题。我建议你逐一浏览它们并查看最近的更改。这可能是由于一个愚蠢的错误引起的。

在我的情况下,我不小心将颜色字符串硬编码为#FFFFF(糟糕的做法,我知道)。你可以看到它有5 F而不是6.它没有显示任何警告,但却是你遇到的同一问题的根源。

编辑1:您可以做的另一件事是在您的gradle控制台中运行 assembleDebug 。它会为您找到具体的一行。

编辑2:添加图像以供参考运行 assembleDebug

enter image description here

答案 1 :(得分:22)

AAPT2错误解决方案。

如果您的Android Studio已更新。

一段时间以来,您将不得不在工作室中遇到一个错误,例如“ AAPT 2错误:查看日志以获取详细信息

当您考虑.xml文件中的某些错误(例如,值不正确,找不到内容等)时,将发生此错误。

但是,那时您无法在此处获得错误说明。 因为新版本的Android Studio无法为您提供特定的错误。这会导致AAPT2错误

如果您想知道实际错误在哪里

按照步骤进行。

  
      
  1. 查看位于Android Studio右侧的面板。签出“ Gradle”标签并单击。
  2.   
  3. 您可以看到“应用”选项。单击它。
  4.   
  5. 在应用程序选项中,您会看到[任务->构建]单击它。
  6.   
  7. 然后您将获得选项列表,然后双击它会看到“ assembleDebug”。
  8.   
  9. 保持激情并查看Android Studio底部面板上的build选项卡,您将在此处看到特定的错误。
  10.   

Click on assembleDebug and see log you can get the actual error is where

答案 2 :(得分:9)

错误可能是由gradle路径中的非ASCII符号引起的。例如。用户文件夹的西里尔符号。因此,只需切换到另一个只有ASCII路径的目录即可解决问题。

Troublesome gradle path

答案 3 :(得分:5)

我用三个步骤修复了ERROR 我检查了问题来源 2.提供正确的字符串/文本,因为它是原因
我清理了项目,你会在BUILD下看到它。

enter image description here

答案 4 :(得分:4)

只需按照您的compileSdkVersion添加此行

buildToolsVersion "27.0.3"

Update Build Tools Version

答案 5 :(得分:3)

检查最新编辑的XML文件。这是主要的Villian 我曾经有过这样的错误,然后检查了最后一个xml文件,其中一行是android:layout_marginTop="." 我将其更改为android:layout_marginTop="16dp"。 这修复了错误!

答案 6 :(得分:3)

你有一个png文件的问题,请看这里:

  

1更多引起:com.android.tools.aapt2.Aapt2Exception:AAPT2   错误:检查日志以获取详细信息       在com.android.builder.png.AaptProcess $ NotifierProcessOutput.handleOutput(AaptProcess.java:454)

它可能是损坏的图像或带有png扩展名的jpeg图像

答案 7 :(得分:3)

确保可绘制文件夹中的图像没有损坏。

答案 8 :(得分:2)

我尝试了所有可能的解决方案来解决此令人沮丧的错误,只有以下内容对我有效。 在您的build.gradle中添加以下内容:

android {
    aaptOptions.cruncherEnabled = false
    aaptOptions.useNewCruncher = false  }

答案 9 :(得分:2)

我遇到了类似的问题。 Akilesh awasthi's回答帮助我解决了这个问题。我的问题有点不同。我在com.google.android.gms中使用 places_ic_search 图标:play-services-location 最新版本 com.google.android.gms:play-services -location:15.0.0 不提供图标places_ic_search。因此,layout.xml文件中存在问题。导致构建失败 AAPT2错误:检查日志以获取详细信息作为消息。 Android工作室应该显示无法找到drawable places_ic_search作为消息。

我最终暂时使用较低版本的com.google.android.gms:play-services-location。希望这有助于将来。

答案 10 :(得分:2)

我犯了一个愚蠢的错误。就我而言,我使项目路径太深了。像这样:C:\Users\Administrator\Desktop\Intsig_Android_BCRSDK_AndAS_V1.11.18_20180719\Intsig_Android_BCRScanSDK_AndAS_V1.10.1.20180711\project\as\AS_BcrScanCallerSvn2

请将该项目迁移到正确的工作空间。 希望这对以后的人有所帮助。

答案 11 :(得分:1)

以防万一以上解决方案不起作用。 就我而言,Bitdefender Antivirus阻止了AAPT2对某些文件进行更改。

答案 12 :(得分:1)

如果仅在生成签名的Apk时收到此错误。那么问题可能出在一种或多种导入的媒体文件格式上。 我直接从网络使用了图像到工作室,但无法生成符号apk,然后发现了错误。

  

来自Gradle> assembleRelease   然后在控制台中出现错误。   请参阅控制台映像中的错误日志。   This was my Error, See its clearly written that one of my image format is not valid or unknown

答案 13 :(得分:1)

如果您正在寻找解决问题核心的方法。 Android Studio在“编辑配置”面板中包含一项功能,可简化此操作。通过点击“ app”标签(通常位于顶部运行按钮的左侧)

您将打开选项以编辑配置。从那里为您自己创建gradle选项的实例。

核心功能实际上是gradle项目以及任务。将任务连接到您的调试计划。

通过此设置运行应用程序时,Android会吐出详细的错误(我们希望这些错误会更频繁地出现),而这些错误将直接指出需要解决的问题。

答案 14 :(得分:1)

对我来说,在一些Udacity项目上工作时遇到了此错误。 我通过将以下代码添加到顶级build.gradle文件中来对其进行修复。

allprojects {
    String osName = System.getProperty("os.name").toLowerCase()
    if (osName.contains("windows")) {
        buildDir = "C:/tmp/${rootProject.name}/${project.name}"
    }
    repositories {
        jcenter()
        google()
    }
}

答案 15 :(得分:0)

style="?android:attr/android:progressBarStyleSmall"

style="?android:attr/progressBarStyleSmall"

答案 16 :(得分:0)

查看日志:

在 java.util.concurrent.ThreadPoolExecutor $ Worker.run(ThreadPoolExecutor.java:617) ... 1更多原因:com.android.tools.aapt2.Aapt2Exception:AAPT2错误:检查日志以获取详细信息 在com.android.builder.png.AaptProcess $ NotifierProcessOutput.handleOutput(AaptProcess.java:454) 在com.android.builder.png.AaptProcess $ NotifierProcessOutput.err(AaptProcess.java:411) 在com.android.builder.png.AaptProcess $ ProcessOutputFacade.err(AaptProcess.java:332) 在com.android.utils.GrabProcessOutput $ 1.run(GrabProcessOutput.java:104)

我觉得有些PNG文件已损坏,没有被解析。有时图像具有扩展名,但不是真正的PNG。

您可以使用以下命令检查项目中的图像是否为真实的PNG:

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

获取列表后,请使用this网站将其转换为PNG。然后再次检查您的构建。

答案 17 :(得分:0)

由于在布局xml中直接使用&字符,我也遇到了同样的错误。 因此,请注意在项目中使用html实体。

答案 18 :(得分:0)

有人可能会从我的案子中得到一些帮助 我只是把一个硬编码的颜色的十六进制值不#这样的错误android:textColor="FFA500"几乎让我狂findout。 #FFA500这解决了我的问题

答案 19 :(得分:0)

我遇到了这个错误,没有有意义的消息告诉我哪里出了问题。 我终于从gradle.properties中删除了这一行,并得到了有意义的错误消息。

android.enableAapt2=false

以我为例,团队中的某人已将 .jpg 扩展名更改为 .png ,并且文件头与扩展名不匹配。 乐趣。

答案 20 :(得分:0)

这个问题主要是关于相关的xml错字错误,对我来说我只是改变了

       <EditText
        android:layout_width="match_parent"
        android:layout_height="40dp"
        android:hint="@string/str_search"
        android:background="@android:color/transparent"
        android:paddingLeft="10dp"/>

android:background="null"

android:background="@android:color/transparent"

答案 21 :(得分:0)

DataBinding 错误示例(xml 属性中的错误):

<layout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"     //<-- Remove this
    android:layout_height="match_parent" //<-- Remove this
>

</layout>

答案 22 :(得分:-1)

这为我解决了这个问题... 建立|清理项目 重构|删除未使用的资源 我仍然是一个初学者,所以我无法解释为什么这可能有效。我这是一个任意选择;这很简单,不需要进行详细的更改,我只是认为这可能会有所帮助:)

答案 23 :(得分:-1)

与此相关的可能问题可能与您的XML文件有关。当我删除不需要的xml文件时,我遇到了这个问题。

要在模块的gradle.properties中解决此错误,请在以下行添加:

android.enableAapt2=false

添加此行后,重新启动gradle。

并做一次清理,重建项目。

答案 24 :(得分:-3)

某些符号应该像&#39;%&#39;

一样转移
<string name="test" formatted="false">95%</string>