この記事でのバージョン
Unity 2021.3.1f1
GoogleMobileAds-v7.1.0
UnityAdsUnityAdapter-3.2.1
はじめに
UnityAdsはAdMobのメディエーションで表示する事が出来ますが、
直接UnityAdsを表示する時に必要なAdvertisementを入れていると
Androidでは以下のような感じのエラーが出てビルドが通りません。
FAILURE: Build failed with an exception. * What went wrong: Execution failed for task ':launcher:checkDebugDuplicateClasses'. > 1 exception was raised by workers: Duplicate class com.unity3d.scar.adapter.v1950.R$string found in modules UnityAds-runtime.ja<message truncated>
メディエーションのみで表示する場合はAdvertisementをRemoveすればいいだけですが、
例えば「AdMobの調子が悪くなった時はUnityAdsを直接表示したい」
みたいな感じで併用して使いたい場合もあると思います。今回はそんな時に役立つ記事です。
UnityMediationDependencies
エラー文の通り、エラーの原因は同じクラスがある事です。
なので、メディエーション側のクラスを無くすために以下のファイルを編集します。
Assets/GoogleMobileAds/Editor/UnityMediationDependencies.xml
編集場所は中央のコメントがある所で、
<!-- If using the Unity Ads Service from Unity3D, comment out this dependency to avoid including the Unity Android SDK twice. -->
Unity3D から Unity Ads Service を使用する場合、この依存関係をコメントアウトして、Unity Android SDK が 2 回含まれるのを回避します。
Unity Android SDK が 2 回含まれることを避けるため、この依存関係をコメントアウトしてください。
ここをで囲んでコメントアウトする事でビルドが通るようになります。