为什么 Android Studio 构建失败,图像出现 AAPT2 错误?

Why is Android Studio failing to build, with an AAPT2 error on images?

最近更新后,Android Studio 无法构建未修改的项目,并出现以下错误:

> A failure occurred while executing com.android.build.gradle.internal.tasks.Workers$ActionFacade

  > AAPT2 aapt2-4.1.1-6503028-linux Daemon #0: Unexpected error during compile '/path/to/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png', attempting to stop daemon.
    This should not happen under normal circumstances, please file an issue if it does.

请注意,它在 Android Studio 本身提供的图像上失败了!

我该如何解决?

这似乎是最新(较新的?)Gradle 插件中有关 PNG 图像的错误; Google 的 IssueTracker 列出了几个新报告的错误。其中一位提到这是一个 Gradle 问题;我通过恢复到以前的版本使我的工作正常:Gradle 插件 4.0.1 和 Gradle 版本 6.1.1 工作正常。

在这个问题得到解决之前,有必要忽略 AS 对更新版本的唠叨。

[应@YinOrYan 的要求添加]

要恢复到 Gradle 的旧版本:

  1. 在菜单中,select“文件”,然后“项目结构...”
  2. 在弹出的对话框中,select“项目”(我的版本中的第一项)。
  3. 您可以从下拉菜单中 select 所需的 Gradle 插件和 Gradle 版本。

这应该不会丢失任何系统调用,因为这与 SDK 或 API 版本不同。但是,它们并不是独立的,因此您可以设置它们的位置可能存在限制。

像往常一样,当你第一次构建时,或者当你必须导入依赖项时,你会希望在线,但除此之外应该可以离线工作。

哇,这真是一场盛宴!您能否解释一下如何在 Android Studio 中恢复到较旧的 gradle。这样做后是否可以离线工作。而且,您是否因此丢失了任何新的系统调用?在终于让我的代码与新的 AR Core 东西一起工作之后,所有这一切都在发生......

遗憾的是,这看起来像是旧架构的问题。 Google 的团队正在研究修复它,同时您仍然可以使用新的 Android Studio 和 AGP,但暂时恢复使用旧版本的 AAPT2:

Try locating the old aapt2 executable in your gradle cache, e.g.: ~/.gradle/caches/<subdirectories, hashes etc>/aapt2-4.1.0-alpha03-6246747-/aapt2(.exe)

Once you have the path you can add to your gradle.properties file: android.aapt2FromMavenOverride=path/to/old/aapt2

为了使它更健壮一点,您实际上可以将该可执行文件复制到非缓存位置,以防您清理缓存后它消失了。

希望对您有所帮助!关注 Issue Tracker bug 更新。

我也遇到了同样的 AAPT2 错误问题,我已经克服了。

首先,将 Gradle 降级到版本 4.0.1,或者

其次,我已经将 AMD 速龙处理器升级到 AMD FX-4300 而没有降级 gradle 插件版本。