Unity2020.3 で、たまたま目にしたので対処方法を考えてみます。
大量にワーニングが表示される
Mapping new ns http://schemas.android.com/sdk/android/repo/addon2/02 to old ns http://schemas.android.com/sdk/android/repo/addon2/01
Mapping new ns http://schemas.android.com/sdk/android/repo/addon2/02 to old ns http://schemas.android.com/sdk/android/repo/addon2/01
Mapping new ns http://schemas.android.com/sdk/android/repo/addon2/02 to old ns http://schemas.android.com/sdk/android/repo/addon2/01
Mapping new ns http://schemas.android.com/sdk/android/repo/addon2/02 to old ns http://schemas.android.com/sdk/android/repo/addon2/01
予期しない要素(URI:""、ローカル:"base-extension")です。予期される要素は<{}codename>,<{}layoutlib>,<{}api-level>です
実際はもっと大量、数十行に渡ってワーニングが表示されていました。
実行時やビルド時に表示されます。そのままでも動作はしますが、大量の警告を放っておくのはちょっと怖い。
発生した状況
- Unity2020.3
- Android の Build Target API Level を 33 にする
- External Dependency Manager(unity jar resolver)から Android ライブラリを自動インポート
External Dependency Manager (unity-jar-resolver) とは、ザックリ言うと「unity で扱える Android ライブラリの依存管理、辛いでしょ? これを使えば自動的に管理できるよ」というパッケージです。
Firebase や AdMob などで使っている人も多いんじゃないでしょうか。
詳しくはこちらをご覧ください。
対処方法
私もハッキリとした理解があるわけではありませんが、おそらく External Dependency Manager が新しすぎて、Unity Hub の PlaybackEngines/AndroidPlayer とバージョンが合わないと予想しました。
よって、Preferences > External Tools > Android を新しいものに変更してみました。
(Unity2020.3 から Unity2021.3 のものに変更した)
これはこれで not officially supported(オフィシャルでサポートしていない)と警告が出ています。
やるかどうかは自己責任で。なお、2021.3.18.f1 は Unity Hub より予めインストールしておいたものです。
終わった後には忘れずに Resolver の更新も行っておきましょう。
Assets > External Dependency Manager > Android Resolver > Force Resolve
以後、警告は表示されなくなりました。
これでいけるって事はそもそも……
環境をまるっと Unity2021 にアップデートしても解消されるんだと思います。
別の危険が生じるので、私はやりませんでしたが……。
Dependencies.xml で古い Android ライブラリを設定する
こういう解決方法も考えられますが、どのバージョンが正しく動作するかは相当 Android ライブラリに対する知識がないと難しそうです。私なら諦めます☺
Unity と External Dependency Manager はなるべく新しいものを使う
今回の件は最新の Unity LTS を使わないなら、警告くらい諦めろという Google(いや、Java か?)からのご託宣かもしれません。
使っている Google ライブラリによっては警告だけでなくエラーになる可能性もありますので、そんな時は新しいバージョンで動作を試してみるのもアリだと思います。