Unity エラー「1 exception was raised by workers」との死闘
どうもマカロンです。
今回はUnityでアプリ開発をする際にAdMobの広告をつけようとして
「1 exception was raised by workers」
というエラーが出てしまった時の対処方について解説していきたいと思います
ちなみにこれを解決するのに2時間かかったので同じような犠牲者が出ないことを願うばかりです...
このエラーは何者なのか...
原因は大きく分けて3つあるようです(unityのバージョンは2019.3.10f6です)
1.依存関係の設定をしたか確認する
「Assets」→「Extemal Dependency Manager」→「Android Resolver」→「Resolve」を設定していないとPluginsの中にAdMobの情報が渡されないので確認してみましょう。
2.Admob App IDにアプリIDが設定されているかを確認する
「Assets」→「Google Mobile Ads」→「Settings」→ Google AdMobのEnabledにチェックを入れる → AdMob App IDを設定する
ここにIDが設定されていないとやはり同じエラーが出てしまうみたいなのでサンプルIDでもいいので設定しておきましょう。
3.AndroidManifestの確認(最重要)
ここが肝です。
1.で紹介した方法でPlugins→Android→GoogleMobileAdsPluginに中にAndroidManifestというXMLがあると思いますが、まずこれが一つしか存在していないことを確認してください。(unityのバージョンを途中で変更したりすると複製される場合があります)
そして以下のコード(AndroidManifestの中身)のandroid:valueの欄を自分のAdMob App IDに変更します(ここと2.で設定したIDは同じものにしてください)
<?xml version="1.0" encoding="UTF-8"?>
-<manifest android:versionCode="1" android:versionName="1.0" package="com.google.unity.ads" xmlns:android="http://schemas.android.com/apk/res/android">
-<application>
<uses-library android:name="org.apache.http.legacy" android:required="false"/>
<meta-data android:name="com.google.android.gms.ads.APPLICATION_ID" android:value="ca-app-pub-XXXXXXXXXXX~XXXXXXXX"/>
</application>
</manifest>
他の解決案
この記事で紹介する内容は以上です
この記事の内容を確認して治らなかった場合は、おそらく原因はAndroidManifest関連だと思われるので、そこに注目して調べてもらうとよいと思います。
他のサイトやブログを見たところAndroidManifestの中身の形式が違うものもあるようです。これは単にバージョンの違いなのかなんなのかはよくわかりませんが、今回3.で紹介したAndroidManifestのコード形式がネット上に一番少ないと思ったので今回はその形式のものを紹介させていただきました。
ゲーム制作をしていて自分のプログラムでエラーが出てため息をつくことが多々ありますが、こういう設定関連でつまづくといかに自分のプログラムのエラーが可愛いものかがわかりますね(笑)
ではまた
ゲームを作るにはやはりお金がないとできることが限られてしまいます。なのでよろしければどうか支援してくださるとうれしいです