[解決済み] Android xml エラー。RelativeLayout (@id/LinearLayout_acc, @id/ProgressBar_statusScreen) で "No resource found that matches the given name" が発生しました。
質問
さて、これは本当に私を悩ませ始めていることです。このエラーは、非常に特殊で、あまり論理的でない方法でポップアップします。
まず最初に、私はこのエラーに関する他の質問をすでに見て、Google で検索したことをお伝えします。私が知る限り、同様の問題のほとんどは、人々が
String
リソースまたは同じレイアウト ファイル内ではない何かを参照している場合、'@id+' または同様のものに '+' を置き換えています。
私が抱えている問題は、レイアウト .xml ファイルで
RelativeLayout
. これには
TableLayout
を含んでおり、2つの
LinearLayout
がテキストを含み、最後に
ProgressBar
. 私が欲しいのは、プログレスバーが
android:layout_alignParentBottom="true"
を使用して、プログレスバーの上に2つの線形レイアウトを整列させることです(下の線形レイアウトはプログレスバーの上に整列し、もう一方は下の線形レイアウトの上に整列する)。
これは十分に単純で、動作しているように見えます。つまり、グラフィック ビューは望ましい結果を示しています。しかし ここで問題が発生します。 Eclipseは2つの線形レイアウトで私にエラーを出します。
"エラー。与えられた名前に一致するリソースが見つかりません (at 'layout_above' with value '@id/LinearLayout_acc').".Error: 与えられた名前に一致するリソースが見つかりません。
と、プログレス バーを参照する他の線形レイアウトのための同じエラーが発生します。タイプミスがないことを 3 回以上確認し (id は packagename.R.java にも存在します)、プロジェクトを何十回もクリーニングしようとしました。
保存 (および自動構築) 時にエラーは発生せず、プロジェクトの実行を決定するまでエラーは発生しません。もう 1 つの奇妙なことは、上部の線形レイアウトの代わりに、プログレス バーから下部の線形レイアウトを参照するとき、私はエラーを受け取りません!
私のレイアウト ファイル。
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="@drawable/background_activity" >
<TableLayout
... />
<LinearLayout
android:id="@+id/LinearLayout_dist"
android:layout_above="@id/LinearLayout_acc"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_marginBottom="10dp" >
<TextView
... />
<TextView
... />
</LinearLayout>
<LinearLayout
android:id="@+id/LinearLayout_acc"
android:layout_above="@id/ProgressBar_statusScreen"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true" >
<TextView
... />
<TextView
... />
</LinearLayout>
<ProgressBar
android:id="@+id/ProgressBar_statusScreen"
style="?android:attr/progressBarStyleHorizontal"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_margin="16dp" />
</RelativeLayout>
このエラーの原因が全くわかりません!助けてください。
回答とともに編集する
Shrikantは、レイアウトファイルの出現順序を変更し、参照が読み込まれたときに、要素がすでに定義されている他の要素のみを参照するようにするという解決策を思いつきました。
@id/
を
@+id/
に変更すると、たとえ参照であっても、エラーメッセージを消すことができます。Marco W. が書いたように
この
スレッドで書いているように
@+id/
を使い、次に各 ID が言及されたときに
@id/
を使用します。ただし、最初の回が定義でない場合もあります。
私はEclipseのグラフィカルエディターでデザインのほとんどを作り、参照するidを設定したので、エラーメッセージになるコードが自動的に挿入されました。もしかしたら、これは Eclipse のバグかもしれません。
解決方法は?
以下のコードを確認してください。
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="@drawable/ic_launcher" >
<TableLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<LinearLayout
android:id="@+id/LinearLayout_dist"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_above="@+id/LinearLayout_acc"
android:layout_centerHorizontal="true"
android:layout_marginBottom="10dp" >
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="FIRST" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="SECOND" />
</LinearLayout>
<LinearLayout
android:id="@+id/LinearLayout_acc"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_above="@+id/ProgressBar_statusScreen"
android:layout_centerHorizontal="true" >
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="THIRD" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="FOURTH" />
</LinearLayout>
<ProgressBar
android:id="@+id/ProgressBar_statusScreen"
style="?android:attr/progressBarStyleHorizontal"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_margin="16dp" />
</RelativeLayout>
また、以下を確認してください。 リンク . android:layout_below="@id/myTextView" が、使用している要素の後に書かれていると、id "myTextView" の要素を認識しない、と書いてありますね。
関連
-
[解決済み】Android "ビュー階層を作成した元のスレッドだけが、そのビューに触れることができる"
-
[解決済み] アイテムの親を取得する際にエラーが発生しました。AppCompat v23にアップグレードした後、指定された名前に一致するリソースが見つかりません。
-
[解決済み] 画面下部のビューを揃えるには?
-
[解決済み] appcompat-v7:21.0.0': 指定された名前に一致するリソースが見つかりません: attr 'android:actionModeShareDrawable'
-
[解決済み] Eclipseでのandroid:configChangesでのAdmobエラー
-
[解決済み] Android Studio - あいまいなメソッド呼び出し getClass()
-
[解決済み] 文字サイズとアンドロイドの画面サイズの違い
-
[解決済み] Android端末がHDPI画面かMDPI画面かを確認する方法は?
-
[解決済み] APKが署名済みかデバッグビルドかを確認するには?
-
[解決済み] HttpURLConnectionを使ったPOSTによるファイル送信
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] Androidにおける"@id/"と"@+id/"の違いについて
-
[解決済み] ArrayAdapter<myClass> の使用方法
-
[解決済み] FloatingActionButtonのサンプルとサポートライブラリ
-
[解決済み] XMLで矩形を描画できますか?
-
[解決済み] データベースでリサイクルビューを使用する
-
[解決済み] AsyncTaskを複数回実行する
-
[解決済み] AndroidでTextViewの下にアンダーラインを引くには
-
[解決済み] google-services.jsonって実際何してるの?
-
[解決済み] Androidの環境設定。ユーザーが環境設定画面を使用していない場合、デフォルト値を読み込むにはどうすればよいですか?
-
[解決済み] Android: xml リソースからの整数値