Android Studio编译失败问题(aapt2)

Android Studio 3.1编译时出错:

org.gradle.api.tasks.TaskExecutionException: Execution failed for task ':app:mergeDebugResources'.
    at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:100)
    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)
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)
    at com.android.ide.common.res2.DataMerger.mergeData(DataMerger.java:301)
    at com.android.ide.common.res2.ResourceMerger.mergeData(ResourceMerger.java:412)

根据网上说的添加了android.enableAapt2=false,一开始都OK后来创建新项目又出了问题:

org.gradle.api.tasks.TaskExecutionException: Execution failed for task ':app:transformDexWithInstantRunDependenciesApkForDebug'.
    at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:100)
    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)

根据查找说是修改一个Android Studiio 一个配置就可以,取消选中Enable Instant Run :
Android Studio编译失败问题(aapt2)_第1张图片
修改之后真的可以运行了,但取消这个选中之后编写代码会非常麻烦,资源文件的引用非常麻烦,需要手写,还需要重新编译才能看出是否正确。

java.lang.RuntimeException: com.android.build.api.transform.TransformException: com.android.ide.common.process.ProcessException: Failed to execute aapt
    at com.android.builder.profile.Recorder$Block.handleException(Recorder.java:55)
    at com.android.builder.profile.ThreadRecorder.record(ThreadRecorder.java:104)

最后查看log感觉还是aapt的问题,果然把android.enableAapt2=false 改为true就可以了。
Android Studio编译失败问题(aapt2)_第2张图片

附:一个提示编译时错误的方法 gradlew compileDebugJavaWithJavac
Android Studio编译失败问题(aapt2)_第3张图片

补充一下,在家打开发现编译失败 根据gradlew mergeDebugResources发现.gradle/cache下兼容包里的图片和一些第三方库中的图片或者资源文件找不到,发现是路径上有中文名称的问题,该用户名就太麻烦了,可以把.gradle文件拷贝出来,再在Android Studio中设置:
Android Studio编译失败问题(aapt2)_第4张图片

你可能感兴趣的:(Android)