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
时,我遇到了此异常。
答案 0 :(得分:136)
今天早上我遇到了这个问题并找到了解决方案。当您弄乱了一个.xml文件时,会创建此问题。我建议你逐一浏览它们并查看最近的更改。这可能是由于一个愚蠢的错误引起的。
在我的情况下,我不小心将颜色字符串硬编码为#FFFFF(糟糕的做法,我知道)。你可以看到它有5 F而不是6.它没有显示任何警告,但却是你遇到的同一问题的根源。
编辑1:您可以做的另一件事是在您的gradle控制台中运行 assembleDebug 。它会为您找到具体的一行。
编辑2:添加图像以供参考运行 assembleDebug 。
答案 1 :(得分:22)
如果您的Android Studio已更新。
一段时间以来,您将不得不在工作室中遇到一个错误,例如“ AAPT 2错误:查看日志以获取详细信息”
当您考虑.xml文件中的某些错误(例如,值不正确,找不到内容等)时,将发生此错误。
但是,那时您无法在此处获得错误说明。 因为新版本的Android Studio无法为您提供特定的错误。这会导致AAPT2错误
如果您想知道实际错误在哪里
- 查看位于Android Studio右侧的面板。签出“ Gradle”标签并单击。
- 您可以看到“应用”选项。单击它。
- 在应用程序选项中,您会看到[任务->构建]单击它。
- 然后您将获得选项列表,然后双击它会看到“ assembleDebug”。
- 保持激情并查看Android Studio底部面板上的build选项卡,您将在此处看到特定的错误。
答案 2 :(得分:9)
答案 3 :(得分:5)
答案 4 :(得分:4)
答案 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,然后发现了错误。
答案 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>