答案 0 :(得分:7)
注意: 关于禁用AAPT2,这不是一个好主意。 AAPT现已弃用,将在2018年底之前删除。禁用它只会延迟您在不推荐使用和删除AAPT时必须修复的问题。
遗憾的是,日志不会直接显示在常规构建窗口中。我不确定为什么,或者谁认为这是一个好主意,但这就是目前的工作方式。您需要弹出基于文本的版本。
使用AS 3.1(可能是3.0,我使用的是3.1因此我无法在那里测试)或IntelliJ 2018.1,您打开构建选项卡:
在这种情况下,我故意在某些XML代码中创建了语法错误(在其他地方也可以获得AAPT2错误,例如清单或Kotlin或其他地方。这只是为了演示)。我在图像中突出显示了一个按钮。如果将鼠标悬停在按钮上,则应显示“切换视图”。单击它,您将进入构建选项卡的基于文本的版本:
在这种情况下,我将XML属性设置为不存在的值。实际问题的格式为JSON(请参阅红色圆圈的内容)。粉红色内部是实际的错误消息(未找到资源),蓝色圆圈包含文件(在本例中为label_layout.xml
),黑色圆圈的内容包含位置(第4行)。
实际的错误会不时变化,所以我不打算添加如何解决它,因为可能是导致各种各样的问题。大部分时间都是你的代码(到目前为止,我还没有看到任何AAPT2崩溃或有一个阻止编译的错误的情况)。实际上,通过合适的日志输出,解决这些问题变得更加容易。
作为参考,同样适用于编译错误:
虽然语法略有不同:
更高版本中的图标已更改。 除此之外,我不会保留图标本身的有效更新。
供将来参考:将鼠标悬停在构建窗口中的按钮上,直到找到显示“切换视图”的按钮:
这是您正在寻找的按钮,无论Google决定在未来的Android Studio版本中使用哪个图标 - 至少在他们解决问题之前。