【Android システムアイコン利用】Resource is not public.が出たときの対処法

さあ、やりましょうか。最近知り合いからまあまあ面白いアプリ制作を頼まれたんでちょっと作ってるんですが、Androidのバージョンによって、publicではないシステムアイコンがあることを知りました。

該当するのが、1.6だと以下の4つ。

  • ic_menu_archive.png
  • ic_menu_delete.png
  • ic_menu_save.png
  • ic_menu_zoom.png

2.1だと以下の1つ。

  • ic_menu_arcive.png

そこで、またまた助かったのがこのサイトです。アプリのメニューを作成する。 – 素人のアンドロイドアプリ開発日記このリンク先のまんまなんだけど、

[xml highlight="11"]
 <?xml version="1.0" encoding="utf-8"?>
 <menu
 xmlns:android="http://schemas.android.com/apk/res/android">
 <item
 android:id="@+id/item1"
 android:icon="@android:drawable/ic_menu_edit"
 android:title="@string/edit"
 />
 <item
 android:id="@+id/item2"
 android:icon="@*android:drawable/ic_menu_archive"
 android:title="@string/archive"
 />
 <item
 android:id="@+id/item3"
 android:icon="@android:drawable/ic_menu_save"
 android:title="@string/save"
 />
 <item
 android:id="@+id/item4"
 android:icon="@android:drawable/ic_menu_zoom"
 android:title="@string/zoom"
 />
 <item
 android:id="@+id/item5"
 android:icon="@android:drawable/ic_menu_delete"
 android:title="@string/delete"
 />
 <item
 android:id="@+id/item6"
 android:icon="@android:drawable/ic_menu_day"
 android:title="@string/day"
 android:checkable="true"
 android:checked="true"
 />
 <item
 android:id="@+id/item7"
 android:icon="@android:drawable/ic_menu_week"
 android:title="@string/week"
 android:checkable="true"
 />
 <item
 android:id="@+id/item8"
 android:icon="@android:drawable/ic_menu_month"
 android:title="@string/month"
 android:checkable="true"
 android:checked="true"
 />
 </menu>

android:icon=”@*android:drawable/ic_menu_archive”

と、しています。これをしないと、

Resource is not public. (at 'icon' with value '@android:drawable/ic_menu_archive').

と、コンソールにエラーが出ます。

著者:bouya Imamura