UnityでAndroid向けにAdmobを導入しようとした時の話。
Unityから書き出したプロジェクトをAndroid Studioでビルドしようとしたら、
以下のような、競合と思われるエラーが出てビルドエラーになってしまいました。
Error:Execution failed for task ':processDebugResources'.
> Error: more than one library with package name 'androidx.vectordrawable'
「androidx.vectordrawable」は、Admobを入れたときPlayServicesResolverから勝手(自動的に)にダウンロードされるものだから、競合が起きるなんておかしい!「Jetpack」の不具合と思ったくらいです。
結論から言うと、解決策はUnity本体、Android Studioの更新ですが、どのように対処したか
背景を交えて解説します!
■現象が発生したときの開発環境
・Unity5.6.6
・Android Studio 2.1.1
現象発生したときの手順
Android Studioでビルド時、以下のようなエラーが出ました。
Error:Execution failed for task ':processDebugResources'.
> Error: more than one library with package name 'androidx.vectordrawable'
手順は以下の通り。
①Unity5.6.6の空のプロジェクトを作成する
②以下のライブラリーをUnityプロジェクトに反映させる。
・GoogleMobileAds-v3.18.0(Unity版のAdmob)
・GoogleMobileAdsMediationTestSuite
③UnityからAndroidプロジェクト向けにexport(Build SystemはGradle)する
④Android Studioで③で書き出したプロジェクトを開く
build.gradleの主な設定は以下の通り
build.gradleの設定
compileSdkVersion 28
buildToolsVersion '28.0.1'
minSdkVersion 16
targetSdkVersion 26
※compileSdkVersion、buildToolsVersionを28以上にしているから競合が起きないはず!
と考えた。
⑤ビルドする
その結果、以下の部分で競合が発生したのです。
compile(name: 'androidx.vectordrawable.vectordrawable-1.0.0', ext:'aar')
compile(name: 'androidx.vectordrawable.vectordrawable-animated-1.0.0', ext:'aar')
出力されたエラー
Error:Execution failed for task ':processDebugResources'.
> Error: more than one library with package name 'androidx.vectordrawable'
解決策はUnityとAndroid Studioのアップデート
開発環境を以下のようにしました。
・Unity2017.4.19
(なぜUnityを2018以上にしないのかというと関わっているプロジェクトの事情です)
・Android Studio 3.4.1
その結果、ビルド時にprocessDebugResourcesエラーが出力されずに、ビルドに成功したのです。
apkファイルの作成も成功しました。
まさか、開発環境のアップデートとは思わなかったので解決に1日がかりでした。
ライブラリーの更新とか面倒な作業が多いなと、つくづく思うのでした・・・
プログラミング・実務経験がある方も必見!
空いた時間をスキルアップ・収入増に使ってみませんか?