AAPT2 error: check logs for details

异常:

Caused by: com.android.builder.internal.aapt.v2.Aapt2Exception: AAPT2 error: check logs for details
    at 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)

R文件全线报错,报红;

AAPT2解释:

AAPT 是全称是 Android Asset Packaging Tool,它是构建 App,甚至是构建 Android 系统都必不可少的一个工具。它的作用是将所有资源文件压缩打包到Android APK 当中。我们在 Android SDK 目录下可以找到它。

AAPT2 是 AAPT 的全新版本,从 Android Studio 3.0 开始,它被作为默认的资源打包工具。

解决办法:

1,点开ToggleView,查看更清楚的gradle 的执行输出;

AAPT2 error: check logs for details

点击之后如下图: 

AAPT2 error: check logs for details

 2,上图中的红色输出信息有如下信息:

AGPBI: {"kind":"error","text":"error: resource drawable/shape_round (aka com.liyuhuyu.liyu:drawable/shape_round) not found.","sources":[{"file":"E:\\Project\\LiYuTwo\\app\\src\\main\\res\\layout\\item_water.xml","position":{"startLine":10}}],"original":"","tool":"AAPT"}

AGPBI: {"kind":"error","text":"error: resource drawable/popupwindow_close (aka com.liyuhuyu.liyu:drawable/popupwindow_close) not found.","sources":[{"file":"E:\\Project\\LiYuTwo\\app\\src\\main\\res\\layout\\popupwindow_pay_select.xml","position":{"startLine":62}}],"original":"","tool":"AAPT"}

3,从上面的提示输出信息中可以知道如下内容:

1)发生错误的文件是 item_water.xml;

2)错误原因是 android:background 属性值 “@drawable/shape_round” 找不到

4,打开item_water.xml文件,找到错误位置,真如上面输出信息所示错误;删除或者改正就好了;

AAPT2 error: check logs for details

总结:

1)其实我的错误原因是引用的资源文件找不到导致的;

2)AAPT2 是打包资源文件的工具,如果 AAPT2 报错了,一般是资源文件有问题。

其他解决办法:

网上很多解决办法都说项目的gradle.properties中添加一行“android.enableAapt2=false ”来关闭AAPT2