转载自 https://blog.csdn.net/u011618035/article/details/80574645

原本好好的项目,突然有一天打开就开始报错AAPT2 error: check logsfor details。

展开错误详细信息

错误文本

com.android.build.gradle.tasks.ResourceException:Error: java.util.concurrent.ExecutionException:com.android.builder.internal.aapt.v2.Aapt2Exception: AAPT2 error: check logsfor details

错误全文

com.android.build.gradle.tasks.ResourceException: Error: java.util.concurrent.ExecutionException: com.android.builder.internal.aapt.v2.Aapt2Exception: AAPT2 error: check logs for detailsat com.android.build.gradle.tasks.MergeResources.doFullTaskAction(MergeResources.java:296)at com.android.build.gradle.internal.tasks.IncrementalTask.taskAction(IncrementalTask.java:106)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)
Caused by: Error: java.util.concurrent.ExecutionException: com.android.builder.internal.aapt.v2.Aapt2Exception: AAPT2 error: check logs for detailsat com.android.ide.common.res2.MergedResourceWriter.end(MergedResourceWriter.java:332)at com.android.ide.common.res2.DataMerger.mergeData(DataMerger.java:301)at com.android.ide.common.res2.ResourceMerger.mergeData(ResourceMerger.java:412)at com.android.build.gradle.tasks.MergeResources.doFullTaskAction(MergeResources.java:285)... 48 moreSuppressed: java.lang.RuntimeException: Some file processing failed, see logs for detailsat com.android.builder.internal.aapt.QueuedResourceProcessor.waitForAll(QueuedResourceProcessor.java:121)at com.android.builder.internal.aapt.QueuedResourceProcessor.end(QueuedResourceProcessor.java:141)at com.android.builder.internal.aapt.v2.QueueableAapt2.close(QueueableAapt2.java:104)at com.android.build.gradle.tasks.MergeResources.doFullTaskAction(MergeResources.java:293)... 48 more
Caused by: java.util.concurrent.ExecutionException: java.util.concurrent.ExecutionException: com.android.builder.internal.aapt.v2.Aapt2Exception: AAPT2 error: check logs for detailsat 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.ide.common.res2.MergedResourceWriter.end(MergedResourceWriter.java:327)... 51 more
Caused by: java.util.concurrent.ExecutionException: com.android.builder.internal.aapt.v2.Aapt2Exception: AAPT2 error: check logs for detailsat 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$compile$0(QueueableAapt2.java:136)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.builder.internal.aapt.v2.Aapt2Exception: AAPT2 error: check logs for detailsat com.android.builder.png.AaptProcess$NotifierProcessOutput.handleOutput(AaptProcess.java:443)at com.android.builder.png.AaptProcess$NotifierProcessOutput.err(AaptProcess.java:395)at com.android.builder.png.AaptProcess$ProcessOutputFacade.err(AaptProcess.java:312)at com.android.utils.GrabProcessOutput$1.run(GrabProcessOutput.java:104)

排除代码问题

检查了半天没有找到问题在哪,又换另一台电脑,同样的代码和IDE(都是Android Studio 3.1.2,只是在Ubuntu上),运行没有任何问题,那么问题应该并不是出在代码上,于是想到新建一个项目试试。于是直接创建了一个新项目,没有修改任何设置,创建了一个甚至连活动都没有新项目

果然,刚刚创建的项目在Build时报出同样的错误

查阅资料,有网友表示“如果有问题可以退回到之前的版本,打开gradle.properties,添加如下内容”

android.enableAapt2=false

对于一个习惯跟在技术更新前沿的人来说,回退版本是不可能的,这辈子都不可能的,但是添加代码还是可以试试,于是便做出了尝试,但还是遇到了报错:

错误信息:

The option 'android.enableAapt2' isdeprecated and should not be used anymore.
Use 'android.enableAapt2=true' to removethis warning.
It will be removed at the end of 2018..

翻译一下就是:

选项“android.enableAapt2”已被弃用,不应再使用。
使用“android.enableAapt2=true”来删除这个警告。
它将在2018年底被移除。

很明显,我们使用“android.enableAapt2=false”来关闭AAPT2是行不通的,这个方法已经过时了,关闭之后Android Studio告诉我们要把它打开,这样就陷入了一个死循环,所以我们还是需要找到问题的根本原因在哪里才能解决。

所以直接删除了刚才插入的“android.enableAapt2=false”继续找办法

打印报错信息

查阅各方资料,学到了一个可以在Android studio中打印详细报错信息的方法:

在命令行中进入项目的根目录,或者可以在Android studio的Terminal中直接操作也可以,然后敲入一个命令:

gradlewcompileDebug --stacktrace

就可以输出较详细的信息,然后根据命令行给出的提示,还可以在后面加上-info或者-debug的选项得到更详细的信息,于是这个命令可以这样写:

gradlewcompileDebug --stacktrace -info

或者:

gradlewcompileDebug --stacktrace -debug

先试第一行代码

在Android Studio自带的Terminal内输入

gradlewcompileDebug --stacktrace

回车之后并没有给我们太多提示,但是在建议中有一句提到“Task'compileDebug' is ambiguous in root project”(翻译:命令“'compileDebug”在根项目中是不明确的),回看之前的报错,第一行提到了一个资源异常“ResourceException”

于是尝试着把命令改成了

gradlewcompileDebugSources --stacktrace -info

再看显示出来的信息,好像发现了点什么

错误信息

> Task :app:mergeDebugResources FAILED
Exception while processing job : QueuedJob{
title=Compiling abc_ic_menu_copy_mtrl_am_alpha.png,
task={from=C:\Users\郑维一\.gradle\caches\transforms-1\files-1.1\appcompat-v7-26.1.0.aar\a55ab1e075dbd5b5da002f93c40b9cfb\res\drawable-xhdpi-v4\abc_ic_menu_copy_mtrl_am_alpha.png, to=F:\Projects\AndroidStudioProjects\JinchengNewsAndroid\app\build\intermediates\res\merged\debug},
future=com.google.common.util.concurrent.SettableFuture@4d8f81a6} : com.android.builder.internal.aapt.v2.Aapt2Exception: AAPT2 error: check logs for details
Exception while processing job : QueuedJob{
title=Compiling abc_btn_radio_to_on_mtrl_000.png,
task={from=C:\Users\郑维一\.gradle\caches\transforms-1\files-1.1\appcompat-v7-26.1.0.aar\a55ab1e075dbd5b5da002f93c40b9cfb\res\drawable-hdpi-v4\abc_btn_radio_to_on_mtrl_000.png, to=F:\Projects\AndroidStudioProjects\JinchengNewsAndroid\app\build\intermediates\res\merged\debug},
future=com.google.common.util.concurrent.SettableFuture@6d94b091} : com.android.builder.internal.aapt.v2.Aapt2Exception: AAPT2 error: check logs for details
Exception while processing job : QueuedJob{
title=Compiling notify_panel_notification_icon_bg.png,
task={from=C:\Users\郑维一\.gradle\caches\transforms-1\files-1.1\support-compat-26.1.0.aar\2efeba8952eb2c0e463a57b63c49f99f\res\drawable-xhdpi-v4\notify_panel_notification_icon_bg.png, to=F:\Projects\AndroidStudioProjects\JinchengNewsAndroid\app\build\intermediates\res\merged\debug},
future=com.google.common.util.concurrent.SettableFuture@19e643ef} : com.android.builder.internal.aapt.v2.Aapt2Exception: AAPT2 error: check logs for details
Shutdown finished in 244ms
Error: java.util.concurrent.ExecutionException: com.android.builder.internal.aapt.v2.Aapt2Exception: AAPT2 error: check logs for details

:app:mergeDebugResources (Thread[Task worker for ‘:’ Thread 3,5,main]) completed. Took 5.716 secs.

发现了中文!

敏感的察觉到,这里可能有问题!(胡说八道,其实是请教了一位大佬)

问题根源

“有人提到目前的这种非AsciⅡ的确是AAPT2和Gradle插件的一个bug,但现在已经被修复,只是Android Studio还未更新成这个被修复的版本。”(大佬说的,暂未查证资料来源)

解决办法

所以现在有两个解决办法,

一、修改gradle的缓存目录

这个可以通过android studio的设置中找到gradle,配置另一个非中文目录来缓存。

File -> Settings -> Build, Execution,Deployment -> Gradle

进入这个页面找到“Service directory path”项,将里面的路径换到一个非中文路径就好了

build成功!

二、指定你的项目使用较新的gradle 插件

在build.gradle(Project)中修改Gradle版本到3.2.0-alpha11或更新版本就可以了

  1. repositories {
  2. google()
  3. }
  4. dependencies {
  5. classpath ‘com.android.tools.build:gradle:3.2.0-alpha11’
  6. }
  7. }

最后还是提醒大家,开发程序不要使用中文目录,会带来无穷的困扰啊!!!

转载:Android Studio 3.1.2 新项目报错 AAPT2 error: check logs for details (Gradle 3.1.2)相关推荐

  1. Android studio 报错AAPT2 error

    报错提示: Error:Execution failed for task ':app:mergeDebugResources'. Error: java.util.concurrent.Execut ...

  2. 关于 CentOS系统编译Qt项目报错:error: cannot find -lGL 的解决方法

    若该文为原创文章,转载请注明原文出处 本文章博客地址:https://hpzwl.blog.csdn.net/article/details/129633859 红胖子(红模仿)的博文大全:开发技术集 ...

  3. 生成open3d项目报错:error LNK2001: 无法解析的外部符号 __imp_glViewport

    这里写自定义目录标题 生成open3d项目报错:error LNK2001: 无法解析的外部符号 __imp_glViewport 问题 解决方法 生成open3d项目报错:error LNK2001 ...

  4. springboot项目报错:ERROR 9112 --- [nio-8080-exec-1] o.a.c.c.C.[.[.[/].[dispatcherServlet] 的解决办法

    启动springboot项目,访问页面后报错 报错信息如下: [nio-8087-exec-1] o.a.c.c.C.[.[.[/].[dispatcherServlet] : Servlet.ser ...

  5. Unity打开新项目报错

    如下图所示,第一次打开项目的时候报错, 内容大致为: FileNotFoundException: Could not find file "D:\GithubProjects\Naviga ...

  6. run vue task的项目报错:Error while running task C:\IT\xxxxxx:serve with message‘spawn vue-cli-service

    在启动已经vue 项目时报错: { Error: spawn vue-cli-service ENOENTat notFoundError (C:\Users\wyhui\AppData\Roamin ...

  7. 关于项目报错:Error:Cannot build artifact 'XXX:war exploded' because it is included into a circular dep

    在启动项目的时候项目报错且启动不了: Error:Cannot build artifact 'manage-service:war exploded' because it is included ...

  8. android资源编译失败,在android studio中打开一个新项目时,Android资源编译失败

    用我的android studio打开新项目时出现此错误 Android资源编译失败输出:C:\ Projects \ Popular2 \ app \ src \ main \ res \ draw ...

  9. x3-02 java,Android Studio 3.2.1 - 新项目无法运行

    我尝试在 Android Studio 3.2.1 上创建一个新项目 . 在项目创建向导中,选择最小SDK版本支持为 API level 21 (Android 5.0) ,使用" Empt ...

最新文章

  1. 能源局再出新招 拟推光伏电站竞价上网
  2. centos设置java环境变量,CentOS设置环境变量
  3. Socket编程(C语言实现)——UDP协议(进程间通信AF_UNIX)的流式(SOCK_STREAM)+报式(SOCK_DGRAM)传输【循环监听】
  4. 实现windows标准的选择文件夹功能
  5. 「欧洲AI联合实验室」ELLIS成立:誓与中美抢人才
  6. for循环如果先--_乐字节Java循环:循环控制和嵌套循环
  7. 乐乐茶签约帆软软件,打造新式茶饮数字化管理新标杆
  8. P1059 明明的随机数(C/C++)
  9. 对元素组按关键字字典序排序
  10. sentinel 打包_SpringCloud Alibaba整合Sentinel
  11. Django模板语言(DTL)
  12. 自动驾驶 7-1 Carla 概述 - 自动驾驶汽车模拟Carla Overview - Self-Driving Car Simulation
  13. 三星on 7刷android7,三星On7(G6100)安卓8.0版官方固件rom刷机包
  14. 如何删除我的计算机里的搜索记录,计算机里搜索栏的历史记录怎么删除?
  15. 第23集丨人生的智慧:练就一颗从容自在的心
  16. 爬虫 and 数据分析 | 一万条b站评论看工作细胞
  17. XP系统计算机桌面图标不见,XP电脑开机桌面上没有图标怎么办?
  18. vue 页面跳转路由 不显示内容Component inside <Transition> renders non-element root node that cannot be animated.
  19. 软件测试的7个基本原则
  20. app Token验证流程

热门文章

  1. 嵌入式IAP开发笔记之一:面向STM32的BootLoader程序
  2. GTank iOS App Technical Support
  3. 个人或结对项目 - 动态显示程序运算的过程
  4. zincrby redis python_【Redis数据结构 序】使用redis-py操作Redis数据库
  5. html5+php调用android手机图片,html5+exif.js+canvas+php实现手机上传图片,图片损坏无法打开...
  6. android复杂列表滑动卡顿,Android 列表滑动性能优化总结
  7. java 虚拟机 字节码,JAVA虚拟机:虚拟机字节码执行引擎
  8. 服务器linux启动,Linux 服务器环境启动
  9. pytorch 指定卡1_在pytorch中指定显卡
  10. linux系统需要备份吗,准备好了吗?请备份你的Linux系统