最新Android Studio3.1.1坑终极解决 运行错误Aapt2Exception TaskExecutionException ResourceException Execution

2018年5月18日更新:

在目前最新Android Studio3.1.2以及以下配置中

 

com.android.tools.build:gradle:3.1.2

compileSdkVersion 26
buildToolsVersion '27.0.3'

官方已成功修复Aapt2错误,再也不用在gradle.properties里面加false代码了,仍有AAPT2错的同学,请将AS以及以上配置升级为最新即可。

 

 

 

错误背景:我之前用的是Android Studio 3.0.1,一直有AAPT2的报错,每次都是在gradle.properties里面加以下代码解决

android.enbaleAapt2=false

2018年4月10日手贱升级Android Studio3.1.1后,Build没错,Run的时候AAPT2错误依然存在,还多了八万个BUG

错误日志为

org.gradle.api.tasks.TaskExecutionException: Execution failed for task ':app:mergeDebugResources'.
	at java.lang.Thread.run(Thread.java:745)
Caused by: com.android.build.gradle.tasks.ResourceException: Error: java.util.concurrent.ExecutionException: com.android.builder.internal.aapt.v2.Aapt2Exception: AAPT2 error: check logs for details
	at com.android.build.gradle.tasks.MergeResources.doFullTaskAction(MergeResources.java:296)
	... 32 more
Caused by: Error: java.util.concurrent.ExecutionException: com.android.builder.internal.aapt.v2.Aapt2Exception: AAPT2 error: check logs for details
	at com.android.ide.common.res2.MergedResourceWriter.end(MergedResourceWriter.java:332)
	... 48 more
	Suppressed: java.lang.RuntimeException: Some file processing failed, see logs for details
		at com.android.builder.internal.aapt.QueuedResourceProcessor.waitForAll(QueuedResourceProcessor.java:121)
		... 48 more
Caused by: java.util.concurrent.ExecutionException: java.util.concurrent.ExecutionException: com.android.builder.internal.aapt.v2.Aapt2Exception: AAPT2 error: check logs for details
	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 details
	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 details
	at com.android.utils.GrabProcessOutput$1.run(GrabProcessOutput.java:104)


其实多出来的BUG依然是因为AAPT2的BUG持续,但是你发现:下面的语句加上后在AS3.1.1没有用处了,Run还是报错

 

android.enbaleAapt2=false

解决办法1: build:gradle切换回原来的3.0.0版本

(1)在build.gradle(Project)里面的如图位置

 

把这一段 "classpath'com.android.tools.build:gradle:3.1.1'" 的 3.1.1 改成 3.0.0

如下 "classpath 'com.android.tools.build:gradle:3.0.0'"

 

(2)接着在我们gradle.properties里面再次加上以下代码即可,别忘记Sync Now

android.enableAapt2=false

 

解决办法2: build:gradle用最新的测试版本3.2.0-alpha09

(1)在build.gradle(Project)里面的如图位置

 

把这一段 "classpath'com.android.tools.build:gradle:3.1.1'" 的 3.1.1 改成 3.2.0-alpha09

 

如下 "classpath 'com.android.tools.build:gradle:3.2.0-alpha09'"

 

 

(2)接着在我们gradle.properties里面再次加上以下代码即可,别忘记Sync Now

 

android.useAapt2FromMaven=true

 

总结:

(1)AAPT2一直是部分Android Studio的玄学BUG,android.enableAapt2=false只是隐藏了BUG,而不是最终解决办法。

build:gradle最新的测试版本3.2.0-alpha09可以看出AS可能未来要修复这个BUG

(2)解决方法1:没有实际解决AAPT2问题,相当于再次重新使用AS3.0.1,但是操作较为简便

(3)解决方法2:貌似解决了AAPT2问题,但Sync时需要下载build:gradle最新的测试版本3.2.0-alpha09,接近100MB,程序  员体验十分不友好

(4)以上解决办法都在2018年4月10日的Android Studio3.1.1实际运行过,均有效解决了问题

 

 

 

 

非商业转载请注明出处,商业转载请联系我~,如有疑问欢迎评论、私信,有帮助请打赏,萌新JedLee给大家ღ( ´・ᴗ・` )比心

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

快乐李同学(李俊德-大连理工大学)

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值