AndroidStudio报错 AAPT2 error: check logs for details

1,098 阅读2分钟

异常:

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 目录下可以找到它。例如我的D:\SDK\build-tools\28.0.2目录下即可找到;其他版本的build-tools下也有;

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

解决办法:

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

点击之后如下图: 

 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文件,找到错误位置,真如上面输出信息所示错误;删除或者改正就好了;

总结:

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

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

其他解决办法:

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


其他知识:

使用aapt查看app包名等信息

1,使用cmd命令行中cd 切换到aapt所在的目录

2,输入 aapt dump badging C:\Users\Administrator\Desktop\找茬201905171701.apk命令运行,OK;

其中C:\Users\Administrator\Desktop\找茬201905171701.apk是app所在的路径