2012-07-05 73 views
2

我一直在使用elcipse幾個星期了。我的代碼功能正常,但突然間它已停止工作。我得到這個錯誤,Android錯誤:您必須指定有效的佈局參考。佈局ID。在elcipse

main.xml:你必須指定一個有效的佈局引用。佈局ID @ layout/required無效。

我的XML代碼

<?xml version="1.0" encoding="utf-8"?> 
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" > 


<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:orientation="vertical"> 


    <!-- select between BIN or auction --> 
    <LinearLayout 
     xmlns:android="http://schemas.android.com/apk/res/android" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:gravity="center_horizontal" 
     android:orientation="horizontal" > 

    <Button 
     android:id="@+id/AuctionButton" 
     android:layout_marginLeft="82dp" 
     android:layout_width="119dp" 
     android:layout_height="wrap_content" 
     android:onClick="showAuctionOptions" 
     android:text="Auction" /> 


    <Button 
     android:id="@+id/BINButton" 
     android:layout_marginLeft="-2dp" 
     android:layout_width="119dp" 
     android:layout_height="wrap_content" 
     android:onClick="showAuctionOptions" 
     android:text="Buy it now" /> 

    </LinearLayout> 

     <include android:id="@+id/cell1" layout="@layout/required"/> 

     <include android:id="@+id/cell2" layout="@layout/gray_line" /> 

     <!--** Show if Buy it now is selected **--> 
     <include android:id="@+id/cell3" layout="@layout/buyitnow" /> 
     <!-- ** End Buy it now display ** --> 

     <!--** Show if auction selected ** --> 
     <include android:id="@+id/cell4" layout="@layout/auction" /> 

     <include android:id="@+id/cell5" layout="@layout/gray_line" /> 

     <include android:id="@+id/cell6" layout="@layout/addons" /> 

     <include android:id="@+id/cell7" layout="@layout/calculate" />  

</LinearLayout> 

</ScrollView> 

誤差與包括第一,但是如果我刪除,我只是得到與第二錯誤包括。如果我刪除所有包含,我會在我的java代碼中得到'無法解決R'錯誤。

我都試過了,

  • 清潔項目
  • 。重新啓動Eclipse
  • 重新啓動我的電腦

這是我的AndroidManifest XML文件,

<?xml version="1.0" encoding="utf-8"?> 
<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
    package="toggler.state" 
    android:versionCode="1" 
    android:versionName="1.0" > 

    <uses-sdk android:minSdkVersion="10" /> 

    <application 
     android:icon="@drawable/ic_launcher" 
     android:label="@string/app_name"> 
     <activity 
      android:name=".TogglerActivity" 
      android:label="@string/app_name"> 
      <intent-filter> 
       <action android:name="android.intent.action.MAIN" /> 

       <category android:name="android.intent.category.LAUNCHER" /> 
      </intent-filter> 
     </activity> 
    </application> 

</manifest> 

無其中已經工作了。有誰可以幫忙嗎?

感謝

+0

@ layout/required是佈局文件的佈局ID或名稱res/layout/required.xml ??? – 2012-07-05 15:28:47

+0

很好的思考問題+1。 – ninge 2012-07-05 16:50:00

回答

3

的錯誤可能是在其他地方的佈局造成的。刪除多餘的兩個xmlns:android="http://schemas.android.com/apk/res/android"

xmlns用於定義名稱空間。在大多數情況下,只有最上面的元素才能擁有它。

看看What does "xmlns" in XML mean?是否有人想了解關於xmlns的解釋。

另請檢查以確保您的XML文件全部爲小寫。

也嘗試查看您的清單中是否指定了正確的包。從https://stackoverflow.com/a/7496766/935779

It is worth checking in AndroidManifest.xml . The attribute package has the correct value.

That is, <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="your.correct.package.name" ...

After you change that, the R.java will be re-generated.

<?xml version="1.0" encoding="utf-8"?> 
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android" 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent" > 


    <LinearLayout 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:orientation="vertical"> 


     <!-- select between BIN or auction --> 
     <LinearLayout 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:gravity="center_horizontal" 
      android:orientation="horizontal" > 

     <Button 
      android:id="@+id/AuctionButton" 
      android:layout_marginLeft="82dp" 
      android:layout_width="119dp" 
      android:layout_height="wrap_content" 
      android:onClick="showAuctionOptions" 
      android:text="Auction" /> 


     <Button 
      android:id="@+id/BINButton" 
      android:layout_marginLeft="-2dp" 
      android:layout_width="119dp" 
      android:layout_height="wrap_content" 
      android:onClick="showAuctionOptions" 
      android:text="Buy it now" /> 

     </LinearLayout> 

     <include android:id="@+id/cell1" layout="@layout/required"/> 

     <include android:id="@+id/cell2" layout="@layout/gray_line" /> 

     <!--** Show if Buy it now is selected **--> 
     <include android:id="@+id/cell3" layout="@layout/buyitnow" /> 
     <!-- ** End Buy it now display ** --> 

     <!--** Show if auction selected ** --> 
     <include android:id="@+id/cell4" layout="@layout/auction" /> 

     <include android:id="@+id/cell5" layout="@layout/gray_line" /> 

     <include android:id="@+id/cell6" layout="@layout/addons" /> 

     <include android:id="@+id/cell7" layout="@layout/calculate" />  

    </LinearLayout> 

</ScrollView> 
+0

完成,但我仍然收到錯誤。 – rusty009 2012-07-05 15:31:11

+0

再次嘗試清理該項目,確保使用小寫的XML文件名或強制重新生成「R」值。我已經添加了一些答案。 – Kirk 2012-07-05 15:38:54

+0

再次感謝您在刪除xmlns後清理了該項目,但仍然遇到同樣的問題。 Android清單看起來對我來說很好,我已經將它放到上面的答案中,以防萬一出現錯誤。 – rusty009 2012-07-05 16:30:48

0

兩者我有一個類似的問題,並能夠通過提供layout_width和layout_height到包括標籤即可修復。