ニフクラ mobile backend(mBaaS)お役立ちブログ

スマホアプリ開発にニフクラ mobile backend(mBaaS)。アプリ開発に役立つ情報をおとどけ!

【Unity】Admobとmobile backendのSDKが競合するときの解決法

Admobとmobile backendのSDKをいっしょにインストールすると競合する場合があります。本記事ではその際の解決法を記載します。

競合する理由とその解決方法

Google-Mobile-Ads-Unityとncmb_unityでは、いくつかのバージョンの異なる同一ライブラリをそれぞれで使用しています。 バージョンの異なるライブラリがそれぞれのプラグインに存在していることが原因で、ビルドエラーが発生している可能性が高いです。

たとえば、

  • Google Mobile Ads Unity Plugin v3.15.1
  • ncmb_unity v4.0.0

の場合、それぞれにて、下記のバージョンのライブラリを使用しています。

Google-Mobile-Ads-Unity-Plugin_v3.15.1 ncmb_unity_v4.0.0
support-compat com.android.support.support-compat-26.1.0.aar support-compat-26.0.2.aar
support-core-utils com.android.support.support-core-utils-26.1.0.aar support-core-utils-26.0.2.aar
support-v4 com.android.support.support-v4-26.1.0.aar support-v4-26.0.2.aar

上記の例のように異なるバージョンのライブラリを使用していることによってビルドエラーが発生している場合は、バージョンの低い方のライブラリを削除するとうまくいくことがあります。 上記例で言えば、26.0.2のバージョンのaarファイルを削除します。

低いバージョンのライブラリを削除した後、再度ビルドを実行してください。

それでもまだなおらない場合

上記手順を行ってもなおビルドに失敗する際は、下記内容をご参考ください。

  • 各プラグインのAndroidManifestファイル内のminSdkVersionconfigを修正する

    • Google Mobile Ads Unity Plugin と ncmb_unity のAndroidManifest の minSdkVersionのバージョンが下記の様に異なる場合は、同一バージョンにしてください。

      #Google Admob
      <uses-sdk android:minSdkVersion="16"/>
      
      #ncmb_unity
      <uses-sdk android:minSdkVersion="14"/>
      
  • 'play-services-basement.properties'が2箇所に存在するとのビルドエラーが発生した場合は、Assets/Plugins/Android/play-services-basement-15.0.1.aarを削除してください。

おわりに

なにか分からないことがあれば、コミュニティなどを活用してみてください!