はじめに (対象読者・この記事でわかること)

この記事は、Androidアプリ開発を始めたばかりの Java エンジニア、あるいは Android Studio でレイアウトXMLを書く際に「No resource identifier found for attribute 'latout_height'」というエラーに遭遇した方を対象としています。
読者は本記事を読むことで、次のことができるようになります。

  • エラーメッセージが示す意味と原因を正確に把握できる。
  • 属性名の綴りミスやリソース定義の抜けが原因であることを特定できる。
  • 正しい属性 (layout_height) への修正方法と、類似エラーの予防策を実践できる。

本記事は、実際にビルドエラーに直面した経験と、公式ドキュメント・コミュニティで確認された情報を元に執筆しました。エラー解消だけでなく、XML の書き方のベストプラクティスも合わせて学べます。

前提知識

この記事を読み進める上で、以下の知識があるとスムーズです。

  • Java の基本的な文法と Android アプリの構成要素(Activity、XML レイアウト)の概要。
  • Android Studio の基本的な操作、ビルドの流れ、および Logcat の見方。

背景とエラー概要

Android の UI は XML で定義し、android:layout_widthandroid:layout_height といった属性でサイズを指定します。ビルド時に Android のリソースコンパイラ(aapt2)が XML を解析し、属性名やリソース ID が正しく参照できるかチェックします。
今回遭遇したエラーメッセージは次の通りです。

error: No resource identifier found for attribute 'latout_height' in package 'android'

ここで注目すべきは latout_height という属性名です。android パッケージに latout_height という属性は存在せず、正しくは layout_height です。綴りミス(li が逆)により、コンパイラは該当属性を見つけられずエラーを投げます。

このエラーは以下のケースでよく発生します。

発生シーン 主な原因
手入力で XML を作成したとき タイプミス (latout_height)
コピー&ペーストで属性名が途中で切れた 部分的に削除された文字列
IDE の自動補完が効かない環境 手動で属性を書き込んだ結果

エラーメッセージは「属性が見つからない」ことだけを伝えるため、原因が属性名の誤りかリソース定義の欠如かを区別できません。したがって、まずは属性名を正しく書くことが最優先です。

具体的な手順と実装例

以下では、実際にエラーが出たサンプルコードと、修正手順を段階的に示します。コード例は Android Studio の標準プロジェクト構成(app/src/main/res/layout/activity_main.xml)を想定しています。

ステップ1:エラーが出ている XML を特定する

  1. Android Studio の Gradle ビルド が失敗した際に表示される Build Output から、エラーメッセージが出ている XML ファイルと行番号を確認します。
    例: res/layout/activity_main.xml:12: error: No resource identifier found for attribute 'latout_height' in package 'android'

  2. 該当ファイルを開き、エラー行を探すと次のような記述が見つかります。

Xml
<TextView android:id="@+id/sample_text" android:layout_width="wrap_content" android:latout_height="wrap_content" <!-- ← typo --> android:text="Hello World!" />

ステップ2:属性名を正しく修正する

  1. android:latout_height を正しい android:layout_height に置き換えます。
Xml
<TextView android:id="@+id/sample_text" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Hello World!" />
  1. 保存して Build > Rebuild Project を実行し、エラーが解消されたか確認します。

ステップ3:類似エラーの予防策を設定する

予防策 内容
IDE のコード補完を活用 Android Studio の android: プレフィックス入力後に Ctrl+Space で属性一覧を表示し、正しい属性を選択する。
XML Lint の活用 File > Settings > Editor > Inspections > Android > XML を有効にし、属性名のスペルミスをリアルタイムで警告させる。
CI/CD でのビルド検証 GitHub Actions などでビルドを自動化し、プルリクエスト時に属性ミスが無いかチェックする。

ハマった点やエラー解決

ハマりポイント 1:属性名が画面に表示されるが、エディタ上で赤線が出ない
- Android Studio のデフォルト設定では、未知の属性は警告として表示されません。Settings → Editor → InspectionsUnknown attribute の検査をオンにすると、リアルタイムで赤波線が出て見逃しを防げます。

ハマりポイント 2:android: プレフィックスを忘れた
- layout_height だけを書いてもエラーは別の形で出る(cannot resolve attribute)。必ず android: 名前空間を付けることを徹底しましょう。

ハマりポイント 3:カスタム属性と勘違い
- プロジェクトで app: など独自の名前空間を使う場合、android: と混同しがちです。属性が標準かカスタムかを明確に区別し、declare-styleable に正しく登録しているか確認してください。

解決策まとめ

  1. 属性名のスペルチェックlatout_heightlayout_height
  2. IDE の補完・Lint 機能を有効化し、リアルタイムでミスを検出。
  3. ビルドスクリプトや CI で継続的に検証し、リリース前にミスを捕捉。

以上を実施すれば、同様の「No resource identifier found」エラーはほぼ防げます。

まとめ

本記事では、Android XML で発生した No resource identifier found for attribute 'latout_height' エラーの原因と解決手順を詳しく解説しました。

  • 原因は属性名の綴りミス(latout_heightlayout_height)で、Android のリソースコンパイラが属性を認識できなかったこと。
  • 対策は属性名を正しく修正し、IDE の補完・Lint 機能や CI ビルドで事前検出を行うこと。
  • ポイントは、エラーメッセージだけに頼らず、実際の XML 行を確認し、スペルや名前空間を疑う姿勢です。

この記事を通して、読者は XML 記述時の注意点を身につけ、ビルドエラーに時間を取られることなく開発を進められるようになります。次回は、カスタムビューの属性定義リソースの名前空間管理 について掘り下げた記事を予定しています。

参考資料