▼はじめに
AndroidStduioで作成したプロジェクトをJenkinsを使ってビルドを行ったところエラーが出ました。
解消方法を調べてみましたが、かなり苦労したので備忘録として残しておくことにします。
▼開発環境
- Windows 10 Home 20H2
- Android Studio 3.5.3
- Android SDK Platform 29
- Android SDK Build-Tools 28.0.3
- Gradle 5.1.1
- Jenkins 2.263.3 LTS(Windows)
▼問題の現象
ローカル環境でビルドしAPKが生成できるところまで確認しました。
同じことをJenkins側でもやってみます。
Jenkins上でフリースタイルジョブを作成。
そこから「Windowsバッチコマンドの実行」を使って該当のプロジェクトをビルドしたところビルドエラーが発生しました。
以下、ログの一部です。
> Task :app:mergeDebugResources FAILED
FAILURE: Build failed with an exception.
* What went wrong:
Execution failed for task ':app:mergeDebugResources'.
> 8 exceptions were raised by workers:
com.android.builder.internal.aapt.v2.Aapt2InternalException: AAPT2 aapt2-3.4.2-5326820-windows Daemon #3: Daemon startup failed
This should not happen under normal circumstances, please file an issue if it does.
com.android.builder.internal.aapt.v2.Aapt2InternalException: AAPT2 aapt2-3.4.2-5326820-windows Daemon #0: Daemon startup failed
This should not happen under normal circumstances, please file an issue if it does.
com.android.builder.internal.aapt.v2.Aapt2InternalException: AAPT2 aapt2-3.4.2-5326820-windows Daemon #5: Daemon startup failed
This should not happen under normal circumstances, please file an issue if it does.
com.android.builder.internal.aapt.v2.Aapt2InternalException: AAPT2 aapt2-3.4.2-5326820-windows Daemon #6: Daemon startup failed
This should not happen under normal circumstances, please file an issue if it does.
com.android.builder.internal.aapt.v2.Aapt2InternalException: AAPT2 aapt2-3.4.2-5326820-windows Daemon #4: Daemon startup failed
This should not happen under normal circumstances, please file an issue if it does.
com.android.builder.internal.aapt.v2.Aapt2InternalException: AAPT2 aapt2-3.4.2-5326820-windows Daemon #2: Daemon startup failed
This should not happen under normal circumstances, please file an issue if it does.
com.android.builder.internal.aapt.v2.Aapt2InternalException: AAPT2 aapt2-3.4.2-5326820-windows Daemon #1: Daemon startup failed
This should not happen under normal circumstances, please file an issue if it does.
com.android.builder.internal.aapt.v2.Aapt2InternalException: AAPT2 aapt2-3.4.2-5326820-windows Daemon #7: Daemon startup failed
This should not happen under normal circumstances, please file an issue if it does.
* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.
* Get more help at https://help.gradle.org
BUILD FAILED in 34s
▼問題が解消されなかった方法
-
gradle clean
をバッチ実行の最初に実行する。 - 下記パスのgradleフォルダを削除し、再度Gradleをダウンロードし実行。
C:\Windows\System32\config\systemprofile\.gradle
- Android Studio を入れ直す。
- ワークスペースのパスを短くする。
▼問題が解消された方法
Unityのフォーラムで同じように悩んでいる方を発見。
■参考サイト:Batchmode build always fail with (Aapt2 Daemon startup failed)Gradle Error. - Unity
内容を読むとJenkinsを実行しているユーザーを変えてたところ解消されたという記事のようです。
こちらを参考に変えてみたところ私も問題を解消することができました。
▼実行ユーザーを変更する前に注意事項
実行ユーザーを切り替えることでJenkinsの設定が初期状態に戻ります。
作業を行う前に予め設定やプラグインは退避するかメモしておき、復元作業を行ってください。
▼実行ユーザーを変更するまでの手順
-
タスクマネージャー > 詳細タブ
にてJenkinsを実行しているユーザーを確認します。
下記の場合はSYSTEMユーザーで実行していることが分かります。
SYSTEMユーザーを今ログインしているユーザーに切り替えます。
-
パソコンを再起動します。
▼結果
この状態でJenkinsに再度アクセスし、
初期設定や前環境の移行作業を行い同様にビルドを行ったところ正常にビルドすることができました。
▼最後に
今回の対応の副産物で、システムの環境変数だけでなくユーザーごとに設定している環境変数も使えるようになったり、作業ユーザーのみインストールしていたツール等も使えるようになりました。
そもそも何故使えないのかと思っていたら実行ユーザーが原因だったようです。