为什么 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 的旧版本:
- 在菜单中,select“文件”,然后“项目结构...”
- 在弹出的对话框中,select“项目”(我的版本中的第一项)。
- 您可以从下拉菜单中 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 插件版本。
最近更新后,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 的旧版本:
- 在菜单中,select“文件”,然后“项目结构...”
- 在弹出的对话框中,select“项目”(我的版本中的第一项)。
- 您可以从下拉菜单中 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 插件版本。