さて、これは本当に私を悩ませ始めています。このエラーは非常に特殊な方法で表示されますが、論理的ではありません。
まず、このエラーに関する他の質問を既に確認したことから始めましょう。Google も同様です。私が知る限り、ほとんどの同様の問題は、人々String
が同じレイアウト ファイル内にないリソースまたは何かを参照するために発生し、'@id+' 内の '+' などを誤って配置するためです。
私が抱えている問題は、.xml を持つレイアウト .xml ファイルで発生しますRelativeLayout
。これには、いくつかのテキストを含むTableLayout
2 つの が含まれ、最後に. 私が望むのは、プログレスバーを相対的なレイアウトに合わせてから、プログレスバーの上に2つのリニアレイアウトを揃えることです(下のリニアレイアウトはプログレスバーの上に揃え、もう1つは下のリニアレイアウトの上に揃えます)。LinearLayout
ProgressBar
android:layout_alignParentBottom="true"
それは十分に単純で、機能しているかのように見える必要があります。つまり、グラフィック ビューに目的の結果が表示されます。ただし、ここで問題が発生します.Eclipseは2つの線形レイアウトでエラーを出します.
「エラー: 指定された名前 ('layout_above' で値 '@id/LinearLayout_acc') に一致するリソースが見つかりませんでした。」
プログレスバーを参照する他の線形レイアウトでも同じエラーが発生します。タイプミスがないことを 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のバグです。