メニューリソースの showAsAction エラー解決|Android開発

   

メニューリソース(res/menu/配下)のXML記述時にshowAsActionエラーが出た時の解決方法です。
名前空間宣言(xmlns)を追加して指定します。

メニューのガイドなんかでは下記の様に記述されていますが、Android Support Library パッケージv7 appcompat ライブラリを使用しているとandroid:showAsActionでエラーになります。
v7 appcompat ライブラリのGradle ビルド スクリプトはcom.android.support:appcompat-v7:27.1.1の様に記述しています。

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:id="@+id/icon_settings"
          android:icon="@drawable/ic_settings_white_24dp"
          android:title="@string/settings"
          android:showAsAction="always"/>
</menu>

修正後のソースコード

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto">
    <item android:id="@+id/icon_settings"
          android:icon="@drawable/ic_settings_white_24dp"
          android:title="@string/settings"
          app:showAsAction="always"/>
</menu>

 - Android