Mac M1芯片上的AAPT/AAPT2执行错误
我有一个带有M1 Max Chip运行蒙特雷的Mac(12.3.1)。我正在运行Android Studio Chipmunk(2021.2.1补丁1)。由于我更新操作系统和工作室,因此在运行Android SDK方面面临挑战。我的代码在编译过程中丢弃了以下错误:
FAILURE: Build failed with an exception.
* What went wrong:
Execution failed for task ':app:mergeInternalDebugResources'.
> Multiple task action failures occurred:
> A failure occurred while executing com.android.build.gradle.internal.res.Aapt2CompileRunnable
> AAPT2 aapt2-7.0.3-7396180-osx Daemon #0: Daemon startup failed
This should not happen under normal circumstances, please file an issue if it does.
> A failure occurred while executing com.android.build.gradle.internal.res.Aapt2CompileRunnable
> AAPT2 aapt2-7.0.3-7396180-osx Daemon #1: Daemon startup failed
....
Caused by: com.android.builder.internal.aapt.v2.Aapt2InternalException: AAPT2 aapt2-7.0.3-7396180-osx Daemon #7: Daemon startup failed
This should not happen under normal circumstances, please file an issue if it does.
at com.android.builder.internal.aapt.v2.Aapt2Daemon.handleError(Aapt2Daemon.kt:193)
at com.android.builder.internal.aapt.v2.Aapt2Daemon.handleError$default(Aapt2Daemon.kt:190)
at com.android.builder.internal.aapt.v2.Aapt2Daemon.checkStarted(Aapt2Daemon.kt:77)
at com.android.builder.internal.aapt.v2.Aapt2Daemon.compile(Aapt2Daemon.kt:100)
at
com.android.builder.internal.aapt.v2.Aapt2DaemonManager$LeasedAaptDaemon..compile(Aapt2DaemonManager.kt:170)
.....
Caused by: java.io.IOException: Cannot run program "/Users/myuser/.gradle/caches/transforms-3/83c6baf2eeddcf66af012c889d39d1c1/transformed/aapt2-7.0.3-7396180-osx/aapt2": error=86, Bad
CPU type in executable
at java.base/java.lang.ProcessBuilder.start(ProcessBuilder.java:1143)
at java.base/java.lang.ProcessBuilder.start(ProcessBuilder.java:1073)
at com.android.builder.internal.aapt.v2.Aapt2DaemonImpl.startProcess(Aapt2DaemonImpl.kt:86)
at com.android.builder.internal.aapt.v2.Aapt2Daemon.checkStarted(Aapt2Daemon.kt:56)
... 37 more
Caused by: java.io.IOException: error=86, Bad CPU type in executable
at java.base/java.lang.ProcessImpl.forkAndExec(Native Method)
at java.base/java.lang.ProcessImpl.<init>(ProcessImpl.java:314)
at java.base/java.lang.ProcessImpl.start(ProcessImpl.java:244)
at java.base/java.lang.ProcessBuilder.start(ProcessBuilder.java:1110)
... 40 more
由于这是AAPT错误,所以我转到了SDK Build-Tools文件夹30.0.2,并尝试从终端本身运行它,并给出了以下错误(对于AAPT和AAPT2) :
zsh: bad CPU type in executable: ./aapt2
我尝试从32.1.0-RC1和33.0.0-RC4运行相同的操作,它运行得很好。因此,我试图从 /用户位置删除.gradle和.android文件夹,并从录音室工作区中删除.gradle。然后从SDK Manager中删除其他构建工具,然后再次构建APK。但令我惊讶的是,Gradle正在寻找30.0.2的构建工具
License for package Android SDK Build-Tools 30.0.2 accepted.
Preparing "Install Android SDK Build-Tools 30.0.2 (revision: 30.0.2)".
"Install Android SDK Build-Tools 30.0.2 (revision: 30.0.2)" ready.
Installing Android SDK Build-Tools 30.0.2 in /Users/myuser/Library/Android/sdk/build-tools/30.0.2
"Install Android SDK Build-Tools 30.0.2 (revision: 30.0.2)" complete.
"Install Android SDK Build-Tools 30.0.2 (revision: 30.0.2)" finished.
,因此我认为此版本的工作室对构建工具有最低要求,因此这就是为什么下载它的原因!但是仍然期望它下载适当的工作!但是仍然给我同样的AAPT错误!
知道为什么AAPT/AAPT2对我不起作用吗?
预先感谢 愉快的编码!
I have a Mac with M1 Max chip running Monterey (12.3.1). I am running Android Studio Chipmunk(2021.2.1 Patch 1). Since I update the OS and the studio, I am having challenges in running Android SDK. My code was throwing following error during compilation:
FAILURE: Build failed with an exception.
* What went wrong:
Execution failed for task ':app:mergeInternalDebugResources'.
> Multiple task action failures occurred:
> A failure occurred while executing com.android.build.gradle.internal.res.Aapt2CompileRunnable
> AAPT2 aapt2-7.0.3-7396180-osx Daemon #0: Daemon startup failed
This should not happen under normal circumstances, please file an issue if it does.
> A failure occurred while executing com.android.build.gradle.internal.res.Aapt2CompileRunnable
> AAPT2 aapt2-7.0.3-7396180-osx Daemon #1: Daemon startup failed
....
Caused by: com.android.builder.internal.aapt.v2.Aapt2InternalException: AAPT2 aapt2-7.0.3-7396180-osx Daemon #7: Daemon startup failed
This should not happen under normal circumstances, please file an issue if it does.
at com.android.builder.internal.aapt.v2.Aapt2Daemon.handleError(Aapt2Daemon.kt:193)
at com.android.builder.internal.aapt.v2.Aapt2Daemon.handleError$default(Aapt2Daemon.kt:190)
at com.android.builder.internal.aapt.v2.Aapt2Daemon.checkStarted(Aapt2Daemon.kt:77)
at com.android.builder.internal.aapt.v2.Aapt2Daemon.compile(Aapt2Daemon.kt:100)
at
com.android.builder.internal.aapt.v2.Aapt2DaemonManager$LeasedAaptDaemon..compile(Aapt2DaemonManager.kt:170)
.....
Caused by: java.io.IOException: Cannot run program "/Users/myuser/.gradle/caches/transforms-3/83c6baf2eeddcf66af012c889d39d1c1/transformed/aapt2-7.0.3-7396180-osx/aapt2": error=86, Bad
CPU type in executable
at java.base/java.lang.ProcessBuilder.start(ProcessBuilder.java:1143)
at java.base/java.lang.ProcessBuilder.start(ProcessBuilder.java:1073)
at com.android.builder.internal.aapt.v2.Aapt2DaemonImpl.startProcess(Aapt2DaemonImpl.kt:86)
at com.android.builder.internal.aapt.v2.Aapt2Daemon.checkStarted(Aapt2Daemon.kt:56)
... 37 more
Caused by: java.io.IOException: error=86, Bad CPU type in executable
at java.base/java.lang.ProcessImpl.forkAndExec(Native Method)
at java.base/java.lang.ProcessImpl.<init>(ProcessImpl.java:314)
at java.base/java.lang.ProcessImpl.start(ProcessImpl.java:244)
at java.base/java.lang.ProcessBuilder.start(ProcessBuilder.java:1110)
... 40 more
Since it was an AAPT error, I went to the SDK build-tools folder 30.0.2 and tried to run it from the terminal itself and it gave the following error(for both AAPT and AAPT2):
zsh: bad CPU type in executable: ./aapt2
I tried running the same from 32.1.0-rc1 and 33.0.0-rc4, it ran perfectly. So I tried to delete the .gradle and .android folder from the /Users location and .gradle from the studio workspace. Then removed the other build tools from the sdk manager and build apk again. But to my surprise, the gradle was looking for 30.0.2 build tool
License for package Android SDK Build-Tools 30.0.2 accepted.
Preparing "Install Android SDK Build-Tools 30.0.2 (revision: 30.0.2)".
"Install Android SDK Build-Tools 30.0.2 (revision: 30.0.2)" ready.
Installing Android SDK Build-Tools 30.0.2 in /Users/myuser/Library/Android/sdk/build-tools/30.0.2
"Install Android SDK Build-Tools 30.0.2 (revision: 30.0.2)" complete.
"Install Android SDK Build-Tools 30.0.2 (revision: 30.0.2)" finished.
So I assumed that this version of the studio have a minimum requirement for the build tool so that's why its downloading it! But still was expecting it to download a proper working one ! but still the gave me the same AAPT error !!
Any idea why AAPT/AAPT2 is not working for me?
Thanks in advance and
Happy coding !!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
终于在安全模式下启动并重新安装Rosetta 2后解决了它!
Finally resolved it after booting in safe mode and reinstall Rosetta 2 !!
我遇到了同样的问题,由于我不想重新启动,因此我通过“强迫”使用简单的hack来解决它:
请确保替换
/userse/username/userame/username/library/android/android/sdk/build -tools/29.0.2/AAPT
带有工作AAPT路径。I had the same problem and since I didn't want to reboot I solved it by "forcing" to use the old aapt with a simple hack:
Make sure to replace
/Users/username/Library/Android/sdk/build-tools/29.0.2/aapt
with a working aapt path.