エラー
AdMobを設定してBuildしたらエラーが出ました。結構ハマったので残しておきます。

A failure occurred while evecuting
com.android.build.gradle.internal.tasks.CheckAarMetadataWorkAction
See the Console for details
訳すと
com.android.build.gradle.internal.tasks.CheckAarMetadataWorkActionの実行中にエラーが発生しました。
詳細はコンソールを参照してください。
それで出てたエラーが以下の内容です。長い!

Starting a Gradle Daemon, 1 incompatible Daemon could not be reused, use --status for details
> Task :unityLibrary:preBuild UP-TO-DATE
> Task :unityLibrary:GoogleMobileAdsPlugin.androidlib:preBuild UP-TO-DATE
> Task :launcher:preBuild UP-TO-DATE
> Task :unityLibrary:preReleaseBuild UP-TO-DATE
> Task :launcher:preReleaseBuild UP-TO-DATE
> Task :unityLibrary:GoogleMobileAdsPlugin.androidlib:preReleaseBuild UP-TO-DATE
> Task :unityLibrary:GoogleMobileAdsPlugin.androidlib:compileReleaseAidl NO-SOURCE
> Task :unityLibrary:GoogleMobileAdsPlugin.androidlib:packageReleaseRenderscript NO-SOURCE
> Task :unityLibrary:GoogleMobileAdsPlugin.androidlib:compileReleaseRenderscript NO-SOURCE
> Task :unityLibrary:GoogleMobileAdsPlugin.androidlib:generateReleaseResValues UP-TO-DATE
> Task :launcher:generateReleaseBuildConfig UP-TO-DATE
> Task :unityLibrary:mergeReleaseJniLibFolders UP-TO-DATE
> Task :unityLibrary:GoogleMobileAdsPlugin.androidlib:generateReleaseResources UP-TO-DATE
> Task :unityLibrary:compileReleaseAidl NO-SOURCE
> Task :launcher:javaPreCompileRelease UP-TO-DATE
> Task :launcher:compileReleaseAidl NO-SOURCE
> Task :launcher:generateReleaseResValues UP-TO-DATE
> Task :launcher:createReleaseCompatibleScreenManifests UP-TO-DATE
> Task :launcher:extractDeepLinksRelease UP-TO-DATE
> Task :launcher:extractProguardFiles UP-TO-DATE
> Task :launcher:mergeReleaseJniLibFolders UP-TO-DATE
> Task :unityLibrary:mergeReleaseNativeLibs UP-TO-DATE
> Task :unityLibrary:GoogleMobileAdsPlugin.androidlib:packageReleaseResources UP-TO-DATE
> Task :unityLibrary:stripReleaseDebugSymbols UP-TO-DATE
> Task :unityLibrary:copyReleaseJniLibsProjectAndLocalJars UP-TO-DATE
> Task :unityLibrary:compileReleaseRenderscript NO-SOURCE
> Task :unityLibrary:generateReleaseBuildConfig UP-TO-DATE
> Task :unityLibrary:generateReleaseResValues UP-TO-DATE
> Task :unityLibrary:generateReleaseResources UP-TO-DATE
> Task :unityLibrary:packageReleaseResources UP-TO-DATE
> Task :unityLibrary:GoogleMobileAdsPlugin.androidlib:parseReleaseLocalResources UP-TO-DATE
> Task :unityLibrary:parseReleaseLocalResources UP-TO-DATE
> Task :unityLibrary:processReleaseManifest UP-TO-DATE
> Task :unityLibrary:GoogleMobileAdsPlugin.androidlib:processReleaseManifest UP-TO-DATE
> Task :unityLibrary:javaPreCompileRelease UP-TO-DATE
> Task :unityLibrary:mergeReleaseShaders UP-TO-DATE
> Task :unityLibrary:compileReleaseShaders NO-SOURCE
> Task :unityLibrary:generateReleaseAssets UP-TO-DATE
> Task :unityLibrary:GoogleMobileAdsPlugin.androidlib:generateReleaseRFile UP-TO-DATE
> Task :unityLibrary:GoogleMobileAdsPlugin.androidlib:generateReleaseBuildConfig UP-TO-DATE
> Task :unityLibrary:GoogleMobileAdsPlugin.androidlib:javaPreCompileRelease UP-TO-DATE
> Task :unityLibrary:packageReleaseAssets UP-TO-DATE
> Task :unityLibrary:GoogleMobileAdsPlugin.androidlib:compileReleaseJavaWithJavac UP-TO-DATE
> Task :unityLibrary:GoogleMobileAdsPlugin.androidlib:bundleLibCompileToJarRelease UP-TO-DATE
> Task :unityLibrary:GoogleMobileAdsPlugin.androidlib:mergeReleaseJniLibFolders UP-TO-DATE
> Task :unityLibrary:GoogleMobileAdsPlugin.androidlib:mergeReleaseNativeLibs NO-SOURCE
> Task :unityLibrary:GoogleMobileAdsPlugin.androidlib:stripReleaseDebugSymbols NO-SOURCE
> Task :unityLibrary:GoogleMobileAdsPlugin.androidlib:copyReleaseJniLibsProjectAndLocalJars UP-TO-DATE
> Task :unityLibrary:GoogleMobileAdsPlugin.androidlib:extractReleaseAnnotations UP-TO-DATE
> Task :unityLibrary:GoogleMobileAdsPlugin.androidlib:mergeReleaseGeneratedProguardFiles UP-TO-DATE
> Task :unityLibrary:GoogleMobileAdsPlugin.androidlib:mergeReleaseConsumerProguardFiles UP-TO-DATE
> Task :unityLibrary:GoogleMobileAdsPlugin.androidlib:mergeReleaseShaders UP-TO-DATE
> Task :unityLibrary:GoogleMobileAdsPlugin.androidlib:compileReleaseShaders NO-SOURCE
> Task :unityLibrary:GoogleMobileAdsPlugin.androidlib:generateReleaseAssets UP-TO-DATE
> Task :unityLibrary:GoogleMobileAdsPlugin.androidlib:packageReleaseAssets UP-TO-DATE
> Task :unityLibrary:GoogleMobileAdsPlugin.androidlib:prepareLintJarForPublish UP-TO-DATE
> Task :unityLibrary:GoogleMobileAdsPlugin.androidlib:prepareReleaseArtProfile UP-TO-DATE
> Task :unityLibrary:GoogleMobileAdsPlugin.androidlib:processReleaseJavaRes NO-SOURCE
> Task :unityLibrary:GoogleMobileAdsPlugin.androidlib:mergeReleaseJavaResource UP-TO-DATE
> Task :unityLibrary:GoogleMobileAdsPlugin.androidlib:syncReleaseLibJars UP-TO-DATE
> Task :unityLibrary:GoogleMobileAdsPlugin.androidlib:writeReleaseAarMetadata UP-TO-DATE
> Task :unityLibrary:GoogleMobileAdsPlugin.androidlib:bundleReleaseLocalLintAar UP-TO-DATE
> Task :unityLibrary:GoogleMobileAdsPlugin.androidlib:extractDeepLinksRelease UP-TO-DATE
> Task :unityLibrary:GoogleMobileAdsPlugin.androidlib:compileReleaseLibraryResources UP-TO-DATE
> Task :unityLibrary:GoogleMobileAdsPlugin.androidlib:bundleLibResRelease NO-SOURCE
> Task :unityLibrary:GoogleMobileAdsPlugin.androidlib:bundleLibRuntimeToJarRelease UP-TO-DATE
> Task :unityLibrary:GoogleMobileAdsPlugin.androidlib:createFullJarRelease UP-TO-DATE
> Task :unityLibrary:GoogleMobileAdsPlugin.androidlib:writeReleaseLintModelMetadata UP-TO-DATE
> Task :unityLibrary:GoogleMobileAdsPlugin.androidlib:copyReleaseJniLibsProjectOnly UP-TO-DATE
> Task :unityLibrary:generateReleaseRFile UP-TO-DATE
> Task :launcher:checkReleaseDuplicateClasses UP-TO-DATE
> Task :unityLibrary:extractReleaseAnnotations UP-TO-DATE
> Task :unityLibrary:compileReleaseJavaWithJavac UP-TO-DATE
> Task :unityLibrary:mergeReleaseGeneratedProguardFiles UP-TO-DATE
> Task :unityLibrary:mergeReleaseConsumerProguardFiles UP-TO-DATE
> Task :unityLibrary:packageReleaseRenderscript NO-SOURCE
> Task :unityLibrary:prepareLintJarForPublish UP-TO-DATE
> Task :unityLibrary:prepareReleaseArtProfile UP-TO-DATE
> Task :unityLibrary:processReleaseJavaRes UP-TO-DATE
> Task :unityLibrary:mergeReleaseJavaResource UP-TO-DATE
> Task :unityLibrary:syncReleaseLibJars UP-TO-DATE
> Task :unityLibrary:writeReleaseAarMetadata UP-TO-DATE
> Task :unityLibrary:bundleReleaseLocalLintAar UP-TO-DATE
> Task :unityLibrary:extractDeepLinksRelease UP-TO-DATE
> Task :unityLibrary:compileReleaseLibraryResources UP-TO-DATE
> Task :unityLibrary:bundleLibCompileToJarRelease UP-TO-DATE
> Task :unityLibrary:bundleLibResRelease UP-TO-DATE
> Task :unityLibrary:bundleLibRuntimeToJarRelease UP-TO-DATE
> Task :unityLibrary:createFullJarRelease UP-TO-DATE
> Task :unityLibrary:writeReleaseLintModelMetadata UP-TO-DATE
> Task :unityLibrary:copyReleaseJniLibsProjectOnly UP-TO-DATE
> Task :launcher:desugarReleaseFileDependencies UP-TO-DATE
> Task :launcher:compileReleaseRenderscript NO-SOURCE
> Task :launcher:generateReleaseResources UP-TO-DATE
> Task :launcher:checkReleaseAarMetadata FAILED
> Task :launcher:mergeReleaseResources UP-TO-DATE
71 actionable tasks: 1 executed, 70 up-to-date
UnityEngine.GUIUtility:ProcessEvent (int,intptr,bool&)
調査
今回のエラーはAdMobを利用して、Buildした時のエラーでした。
そもそもGoogle Playに乗せるにはAPIレベルが34でないといけないようです。
2024 年 8 月 31 日以降:
https://support.google.com/googleplay/android-developer/answer/11926878?hl=ja
- 新しいアプリとアプリ アップデートを Google Play に送信する場合は、Android 14(API レベル 34)を対象にする必要があります(Wear OS アプリと Android TV アプリは Android 13 以降を対象にする必要があります)。
AdMob APIのリリースノートには
23.1.0 2024‑05‑09
https://developers.google.com/admob/android/rel-notes?hl=ja
Requires a minimum compileSdkVersion of 34.
とありました。compileSdkVersion はAPIレベルを34以上にしてくださいね。
スクリーンショット取り忘れたんですが、targetSdkVersionを34にして実行してみたら以下のエラーメッセージでした。
Getting the same issue with 2022.3.28f1 LTS. The deadline is approaching very fast and we’re all working on doing this upgrade.
WARNING:We recommend using a newer Android Gradle plugin to use compileSdk = 34
This Android Gradle plugin (7.1.2) was tested up to compileSdk = 32
The build will continue, but you are strongly encouraged to update your project to
use a newer Android Gradle Plugin that has been tested with compileSdk = 34
「Android Gradle Plug-in」のVer 7.1.2はどうやらAPIレベル32以下でしかBuildに対応していないそうで、buildが通りませんでした。
つまりAdMob APIは、APIレベル34以上にしてくださいね。Unity Editorは、APIレベル32以下じゃないとGradleのBuildはできませんよってなってるわけです。
じゃあ、「Android Gradle Plug-in」のバージョンを上げるしかないですねってことで調べました。
すると以下のようになっていました。
Version compatibility
The following table shows compatibility between Gradle version and Unity version.
https://docs.unity3d.com/2022.3/Documentation/Manual/android-gradle-overview.html
Unity version Gradle version Android Gradle plug-in version 2022.3.38f1+ 7.5.1 7.4.2 2022.2.0a18 – 2022.3.37f1 7.2 7.1.2
私のUnityのバージョンは「2022.3.28f1」でした。最新バージョンにすれば「Android Gradle Plug-in」のバージョンは、7.4.2になるようですね。
ちなみにLangaugeを日本語にすると以下のように表示されるのでご注意です。罠か!

ここまで調べるのに丸一日かかった!
解決方法
解決方法は、Unityのバージョンアップですね。
UnityHubより行います。私の環境ではもうインストールまでやってしまったので説明だけ・・・。
Installsの「Install Editor」を選択

最新のバージョンを選択します。

Install完了後プロジェクトの使用するバージョンを変更します。

「2022.3.47f1」を選択し、「Open with 2022.3.47f1」をクリックするとProjectの更新が始まります。

このあとBuildしたら普通にapkファイルが出力されました。
備忘録(おまけ)
Buildが成功したときの、Admob導入の設定情報を載せておきます。
「Edit」->「Preferences」->「External Tools」

「Edit」->「Project Settings」->「Player」->「Android」->「Other Settings」

「Edit」->「Project Settings」->「Player」->「Android」->「Publishing Settings」



コメント