search
LoginSignup
2
Help us understand the problem. What are the problem?

posted at

updated at

【Unity】Android プッシュ通知アイコン Assets/Plugins/Android/res is deprecated.

目的

Androidプッシュ通知用のアイコンを設定したい。
つまり Assets/Plugins/Android/res/drawable-... に アイコンを配置したい。
しかしビルドログを見ると何か言われてるので対処したい。

実行環境

MacOSX:10.15.7
Unity:2019.4.19f1

(AndroidStudioは使いません)

問題

Unity2019からか分かりませんが
Android用にバッチビルドを行い、ログを眺めていますと

OBSOLETE - Providing Android resources in Assets/Plugins/Android/res is deprecated, please move your resources to an AAR or an Android Library. See "AAR plug-ins and Android Libraries" section of the Manual for more details.

Deep-L先生に翻訳をお願いすると

廃止 - Assets/Plugins/Android/res に Android リソースを提供することは推奨されていません。リソースを AAR または Android ライブラリに移動してください。詳細はマニュアルの「AARプラグインとAndroidライブラリ」のセクションを参照してください。

まだ使えましたが いつ無くなるか不明。
リソースだけ追加したいのに AndroidStudio起動して AAR作れとかちょっと…

考察

先ほどの文章を読むと
See "AAR plug-ins and Android Libraries" section of the Manual for more details.
と書いてありますので、ググると Android Developers公式 が出てきました

スクリーンショット 0003-03-09 14.49.10.png
・AARは ZIPファイル
・必須エントリは AndroidManifest.xml
(必須と書いてあるが Unityで使う分には たぶん必須ではない)
・決められたエントリ(ファイル or フォルダ)なら 含めることができる

対処

・aarはzip
・zip内には res/* だけでもOK(resより前のパスは含めないように)

> zipinfo hoge.aar

Archive: hoge.aar
Zip file size: xxxx byte, number of entries: xx
res/
res/drawable-hdpi/
res/drawable-hdpi/hoge.png
res/drawable-ldpi/
res/drawable-ldpi/hoge.png
...

ということで、あらかじめ resフォルダをzip化して拡張子aarにリネーム すればOKです。

私は流行(?)に乗って [参考URL]

IPreprocessBuildWithReportにて
・zip -r hoge.aar res -x "*.meta"
・元のresフォルダを除外
・AssetDatabase.Refresh()

IPostprocessBuildWithReportにて
・除外したresフォルダを元に戻す
・AssetDatabase.Refresh()

と行いました。
出来たapkの中を覗くと、無事 resフォルダが展開されていました。

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
What you can do with signing up
2
Help us understand the problem. What are the problem?