[unity Android]Mapping new ns http~ to old ns http~

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 ライブラリによっては警告だけでなくエラーになる可能性もありますので、そんな時は新しいバージョンで動作を試してみるのもアリだと思います。

返信を残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA