はじまり
Androidアプリ申請の仕様が変わりaab形式のビルドを提出する必要ができました。
apk形式からaab形式の切り替えは問題なく行えたのですがTargetAPILevelを30以上にする必要があるとストア側に言われ30に設定したところGradleビルドエラーが発生して積みました、、、
FAILURE: Build failed with an exception.
* What went wrong:
Execution failed for task ':launcher:processReleaseResources'.
> A failure occurred while executing com.android.build.gradle.internal.tasks.Workers$ActionFacade
> Android resource linking failed
CommandInvokationFailure: Gradle build failed.
/${OpenJDK_PATH}/bin/java -classpath
"${Gradle_PATH}/lib/gradle-launcher-5.6.4.jar" org.gradle.launcher.GradleMain "-Dorg.gradle.jvmargs=-Xmx4096m" "assembleRelease"
有難いことに先駆者様がいくつか対応したメモを残してくれていたのですが、すぐには解決はせず、先駆者様のメモを複数対応した結果ビルドエラーを解消できました。
今回はこの解決までの手順を備忘録でまとめていきます。
環境(成功したの環境)
Unity2020.3.18f1(LTS最新)
Android TargetAPI Level 30
Android Build Tool 31.0.0
0.Unityを更新
VersionをUnity2020.3.18f1(現状LTS最新)に更新
1.BuildTargetをAAB形式に設定
BuildSettingsからBuildAppBudleにチェック
2.TargetAPILevel設定
PlayerSettingsからTargetAPILevelを30に変更
3.PreferencesからAndroidSDKをAPILevel30に対応したSDKに設定
対応したAndroidSDKがない場合はAndroidStudioからインストールしてください
4.Gradle系ファイルを出力
多分やる必要はないですが、試した結果成功した環境はこういう形になっています
ProjectSettings->PublishingSetingsから設定
内容は変更していません
こちらの記事から出力すると解決する旨が記載されていましたので参考にしました
#5.BuildTool31.0.0のエラーを修正する
私の環境では手順4まで行うとビルドエラーの内容が変わりました。
Installed Build Tools revision 31.0.0 is corrupted. Remove and install again using the SDK Manager.
Build Toolsが導入されていない方は事前にAndroidStudioからインストールしてください。
結論から、2つファイル名を変更することで対応できます
・1つ目 d8.bat => dx.bat
ファイル場所
"C:\Users\user\AppData\Local\Android\Sdk\build-tools\31.0.0"
・2つ目 d8.jar -> dx.jar
ファイル場所
"C:\Users\user\AppData\Local\Android\Sdk\build-tools\31.0.0\lib"
以上です
Mac、Lunuxはこちらで行えるようです
# change below to your Android SDK path
cd ~/Library/Android/sdk/build-tools/31.0.0 \
&& mv d8 dx \
&& cd lib \
&& mv d8.jar dx.jar
この問題はこちらの記事が大変参考になりました
これで私の環境ではビルドできました。
あなたの環境でもビルドできれば良いのですが、、、