のにっき

NCMBとGoogleAdMobの競合によるビルドエラー解決法【2019年10月】

何番煎じか分からない項目なのですが、

シャキッとした答えが見つからなかった。

バージョンの違いで対応が違っていたので

現バージョンのパッケージで解決した方法をまとめときます。

 

 

パッケージのバージョン

GoogleMobileAds・・・v4.0.0

NCMB・・・v4.0.3

ビルドエラー時の状況

・NCMBパッケージを先にインポートする

 →たぶんこれがビルドエラーの原因

・GoogleMobileAdsパッケージをインポートしてビルド

▼下図のエラー発生

UnityEditor.BuildPlayerWindow+BuildMethodException: 528 errors

CommandInvokationFailure: Gradle build failed.

f:id:apuridasuo:20191029113628p:plain

図:エラーメッセージ

今回行った対処法

NCMBパッケージでインポートした「Plugins -> Android」内のファイルを削除

ビルドエラーの原因は、ライブラリの競合にあるので

NCMBパッケージでインポートした

Pluginフォルダ内のファイルを削除して競合しないようにします。

◆削除するファイル名

・firebase-analytics-impl-16.0.0

・firebase-common-16.0.0

・firebase-iid-16.2.0

・firebase-iid-interop-16.0.0

・firebase-messaging-17.1.0

・play-services-base-15.0.1

・play-services-basement-15.0.1

・play-services-measurement-base-15.0.0

・play-services-tasks-15.0.1

・support-compat-26.0.2

・support-core-utils-26.0.2

・support-v4-26.0.2

f:id:apuridasuo:20191029115108p:plain

図:削除するファイル一覧

f:id:apuridasuo:20191029115712p:plain

図:削除前後の「Plugins -> Android」フォルダ

 

ビルドしてみる

これで上手くビルドが出来ているはずです。

ビルドエラーが発生したとき、

パッケージを複数インポートした場合は

ライブラリの競合が発生している可能性が多々あると思います。

そういった場合は、

1.検証用に新規プロジェクト(AAA)を作る

2.エラーの出るプロジェクトに入れたパッケージを(AAA)に入れる

3.インポートした「Plugins」フォルダのファイルを

 パッケージごとに消していきエラーが回復するか確認する

このやり方で、競合するファイルが何か判別できると思います。