
マイケル
みなさんこんにちは!
マイケルです!!
マイケルです!!

エレキベア
クマ〜〜〜

マイケル
今回は
NCMBとAdmobプラグインの競合解決
についてのメモです!
NCMBとAdmobプラグインの競合解決
についてのメモです!

マイケル
Unityで個人ゲーム開発する場合に、
広告 -> Google Admob
ランキング実装 -> NCMB
という選択をする人も多いかと思うのですが、
各unitypackageをそのままインポートしてビルドすると・・・
広告 -> Google Admob
ランキング実装 -> NCMB
という選択をする人も多いかと思うのですが、
各unitypackageをそのままインポートしてビルドすると・・・


マイケル
このようにビルドエラーが発生することがあります。

エレキベア
見たくないクマ・・・

マイケル
2年前くらいにこの組み合わせで開発した時にも
同じようなエラーが出た記憶があるのですが、
2022年3月現在でも発生するようだったので解決方法を載せておきます!
同じようなエラーが出た記憶があるのですが、
2022年3月現在でも発生するようだったので解決方法を載せておきます!

エレキベア
もはや定番クマね
Androidの競合解決

マイケル
今回使用したプラグインとUnityのバージョンは下記になります。
- GoogleMobileAds-v7.0.0
- NCMB.4.4.1
- Unity2020.3.16f1
プラグインの競合

マイケル
エラーメッセージの量が多いので最初はパニックになるかと思いますが、
よく見ると下記のようにDuplicate class(クラスが重複している)と出力されていることが分かります。
よく見ると下記のようにDuplicate class(クラスが重複している)と出力されていることが分かります。
java.lang.RuntimeException: Duplicate class android.support.v4.app.INotificationSideChannel found in modules androidx.core.core-1.6.0-runtime.jar (:androidx.core.core-1.6.0:) and core-1.1.0-runtime.jar (:core-1.1.0:)
Duplicate class androidx.collection.ArrayMap found in modules androidx.collection.collection-1.0.0.jar (androidx.collection.collection-1.0.0.jar) and collection-1.1.0.jar (collection-1.1.0.jar)
Duplicate class com.google.android.gms.actions.ItemListIntents found in modules com.google.android.gms.play-services-basement-17.6.0-runtime.jar (:com.google.android.gms.play-services-basement-17.6.0:) and play-services-basement-17.1.1-runtime.jar (:play-services-basement-17.1.1:)
Duplicate class com.google.android.gms.auth.api.signin.GoogleSignInAccount found in modules com.google.android.gms.play-services-base-17.6.0-runtime.jar (:com.google.android.gms.play-services-base-17.6.0:) and play-services-base-17.0.0-runtime.jar (:play-services-base-17.0.0:)
java.lang.RuntimeException: Duplicate class androidx.legacy.content.WakefulBroadcastReceiver found in modules androidx.legacy.legacy-support-core-utils-1.0.0-runtime.jar (:androidx.legacy.legacy-support-core-utils-1.0.0:) and androidx.legacy.legacy-support-core-utils-1.0.0-runtime.jar (:legacy-support-core-utils-1.0.0:)
Duplicate class com.google.android.gms.tasks.CancellationToken found in modules com.google.android.gms.play-services-tasks-17.2.1-runtime.jar (:com.google.android.gms.play-services-tasks-17.2.1:) and play-services-tasks-17.0.0-runtime.jar (:play-services-tasks-17.0.0:)
↑重複エラーメッセージ
マイケル
そのため、エラーが出ているプラグインをログから抽出して片方を削除すると
エラーが解決されます!
エラーが解決されます!


エレキベア
NCMBとAdmobのどちらにも
同じプラグインが入っていたということクマね
同じプラグインが入っていたということクマね

マイケル
一度で全て競合しない場合があるので、
その時は数回、ビルド→競合解決を繰り返しましょう!
その時は数回、ビルド→競合解決を繰り返しましょう!

マイケル
今回の場合、最終的に削除したプラグインは下記になります。
- core-1.1.0.aar
- collection-1.1.0.jar
- play-services-basement-17.1.1.aar
- play-services-base-17.0.0.aar
- legacy-support-core-utils-1.0.0.aar
- play-services-tasks-17.0.0.aar

マイケル
基本的にバージョンが低い方のプラグインを削除するようにしました。
これでビルドが通るようになっているはずです!
これでビルドが通るようになっているはずです!

エレキベア
ちょろかったクマ〜〜〜
おわりに

マイケル
というわけで今回はNCMBとAdmobの競合解決でした!
どうだったかな?
どうだったかな?

エレキベア
最初は焦ったクマがよく見ると簡単だったクマ

マイケル
バージョンが変わると今回と同じように解決できないこともあるし、
複数プラグインを使用すると似たような競合はよく起こります。
その際にはエラーメッセージをよく見て対処するようにしましょう!
複数プラグインを使用すると似たような競合はよく起こります。
その際にはエラーメッセージをよく見て対処するようにしましょう!

エレキベア
心得たクマ

マイケル
それでは今日はこの辺で!
アデュー!!
アデュー!!

エレキベア
クマ〜〜〜〜
【Unity・2022年度版】NCMBとAdmobのAndroidプラグインの競合を解決する 〜完〜
↓NCMBを使用したランキング実装についてはこちら!
コメント