例外:AAPT2错误:检查细节日志

问题描述 投票:52回答:18
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,我得到这个例外。

android-gradle
18个回答
157
投票

我今日早盘就遇到了这个问题,非常,发现解决方案,这太。当你搞砸了你的.xml文件中的一个产生此问题。我会建议你逐一通过他们去,寻找所做的最新更改。它可能是由一个愚蠢的错误造成的。

就我而言,我不小心硬编码一种颜色字符串作为#FFFFF(坏的做法,我知道)。正如你可以看到它有5 F,而不是6,没有表现出任何警告,但仍是同一个问题的根源如您所遇到的。

编辑1:你可以做的另一件事是在你的gradle这个控制台运行assembleDebug。它会找到适合你的具体线路。

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

enter image description here


2
投票

我面临着类似的问题。 Akilesh awasthi's答案帮我解决这个问题。我的问题是有点不同。我是利用com.google.android.gms places_ic_search图标:发挥服务地点的最新版本com.google.android.gms:发挥服务地点:15.0.0不提供图标places_ic_search。因此出现了在layout.xml问题files.That导致构建失败AAPT2错误:检查日志细节消息。 Android的工作室应该显示无法找到可绘制places_ic_search作为替代消息。

我结束了使用com.google.android.gms较低版本:游戏的服务定位是暂时的。希望这可以帮助别人的未来。


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

请迁移项目到正确的工作区。希望这可以帮助别人的未来。


2
投票

我想尽一切可能的解决方案来解决这个令人沮丧的错误,只有下面为我工作。在你的build.gradle补充一点:

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

1
投票

万一上述方案没有奏效。在我的情况下,BitDefender反病毒从制作上的某些文件的变化防止AAPT2。


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()
    }
}

1
投票

如果你正在寻找一种方式来获得对这个问题的心脏。 Android Studio中包含了编辑配置面板,简化了这种可能的一项功能。通过点击“应用程序”标签(它通常是顶端运行按钮的左边)

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

核心功能实际上是gradle这个项目以及任务。任务连接到您的调试举措。

当您通过此设置运行你的应用程序,Android将吐出详细的错误(我们都希望会更常出现),这些errros将直接指向一个什么需要解决。


0
投票

我有这个错误并没有有意义的消息告诉我什么是错。我终于移除了gradle.properties这条线,并得到了有意义的错误消息。

android.enableAapt2=false

在我的情况对球队有人已经改变.jpg扩展名以.png文件和文件头不扩展匹配。乐趣。


0
投票

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

style="?android:attr/progressBarStyleSmall"


0
投票

我也越来越直接,因为在布局XML使用&性格同样的错误。所以,请小心在项目中使用HTML实体。


-1
投票

与此相关的问题,可能能够为您的XML文件。我面临这个时候我删除了我的unnecery XML文件。

从这个错误中模块的gradle.properties补救,添加此行如下:

android.enableAapt2=false

加入这一行后,重新启动gradle这个。

并做一次清洁,重新构建项目。


36
投票

AAPT2 Error solution.

如果您的Android工作室已更新。

也许,你将面临一个错误,如工作室“AAPT 2错误:检查日志的详细信息”

会出现此错误时,你已经做错了你的.xml文件,如不正确的值,没有发现内容,等等。

但是,在那个时候,你不会有错误规范那里。由于Android工作室的新版本不给你一个具体的错误。它给像AAPT2错误。

如果你想知道真正的错误是

按照步骤。

  1. 看看这是在你的Android Studio右侧退房“摇篮”选项卡,然后点击它的面板。
  2. 你会看到“应用程序”选项。点击它。
  3. 在应用程序选项,你会看到[任务 - >生成]点击它。
  4. 然后你会得到选项列表,看到它“assembleDebug”双击。
  5. 保持耐心和看到的Android工作室的底部面板建立标签,你会得到一个特定的错误。

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


-1
投票

这解决了这个问题对我来说...建设|清洁工程重构|删除未使用的资源,我仍然在这个初学者,所以我不能解释为什么这本来是可行的。这是我的一部分任意选择;这很简单,并不需要详细的变化,我只是想这可能帮助:)


-3
投票

一些符号应当被转移LIKE“%”

<string name="test" formatted="false">95%</string>

11
投票

该错误可能是由gradle这个通道非ASCII符号的原因。例如。用户文件夹的符号西里尔。那么,问题只是通过切换到与ASCII唯一路径另一个目录解决。

Troublesome gradle path


5
投票

我固定误差三个步骤 1.我检查问题的根源 2.提供正确的字符串/文本,因为它是原因 3.我打扫的项目,你会看到它在BUILD。

enter image description here


5
投票

只需添加这条线,按您的compileSdkVersion

buildToolsVersion "27.0.3"

Update Build Tools Version


3
投票

检查最新的编辑XML文件。它是主要反派我曾经这样的错误,我再检查一下最后的XML文件,疗法就像android:layout_marginTop="."行我改成了android:layout_marginTop="16dp"。这固定的错误!


3
投票

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

com.android.tools.aapt2.Aapt2Exception:1更所致AAPT2错误:检查日志在com.android.builder.png.AaptProcess $ NotifierProcessOutput.handleOutput细节(AaptProcess.java:454)

它可以破坏与PNG图像扩展或JPEG图像


3
投票

只有当生成签署的.apk如果您收到此错误。那么问题可能是在一个或多个导入的媒体文件格式。我已经直接用于将图像从网演播室,却不能产生标志APK,然后发现错误。

从摇篮> assembleRelease则得到了在控制台中的错误。看到错误日志中控制台图像。 This was my Error, See its clearly written that one of my image format is not valid or unknown


3
投票

确保如果绘制文件夹中没有图像已损坏。

© www.soinside.com 2019 - 2024. All rights reserved.