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日がかりでした。
ライブラリーの更新とか面倒な作業が多いなと、つくづく思うのでした・・・
\IT未経験者からのサポートあり!転職サービス3選!!/
サービス名 | |||
---|---|---|---|
未経験 | 未経験OK | 未経験の転職専用 | 経験者向け |
公開の求人数 | ITエンジニア全体で1万件以上 ITエンジニア未経験で600件以上 |
未公開 | 5,000件以上 |
利用対象 | 全職種 | IT特化 | IT特化 |
特徴 | ✓誰もが知る転職サービス ✓経歴を登録しておくとオファーが来る |
✓企業担当者と条件交渉 ✓スキルの身につく企業を紹介 |
✓IT専門のエージェントが対応 ✓転職成功すると年収200万円以上の大幅アップがある |
転職サポート内容 |
|
|
|
公式サイト | リクナビネクスト | テックゲート | レバテックキャリア |