Android 错误:您必须指定有效的布局参考。布局 ID。在日食中

问题描述 投票:0回答:2

我已经使用 Eclipse 工作了几个星期了。我的代码运行正常,但突然停止运行。我收到此错误,

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>

这些都不起作用。有人可以帮忙吗?

谢谢

java android xml eclipse
2个回答
3
投票

该错误可能是由布局中的其他地方引起的。去掉多余的两个

xmlns:android="http://schemas.android.com/apk/res/android"

xmlns
用于定义命名空间。在大多数情况下,只有顶部元素可以拥有它。

看看 XML 中的“xmlns”是什么意思?如果有人想阅读

xmlns
解释。

还要检查以确保您的 XML 文件全部为小写。

还要尝试查看清单中是否指定了正确的包。摘自https://stackoverflow.com/a/7496766/935779

值得检查

AndroidManifest.xml
。属性包有 正确的值。

也就是说,

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

更改后,R.java 将重新生成。

<?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
投票

我遇到了类似的问题,并且能够通过向包含标记提供layout_width和layout_height来修复它。

© www.soinside.com 2019 - 2024. All rights reserved.