2

我已经和 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”错误。

我尝试过的,

  • 清理项目
  • 重新启动日食
  • 重新启动我的电脑

这是我的 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>

没有一个有效。有人可以帮忙吗?

谢谢

4

2 回答 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>
于 2012-07-05T15:26:59.653 回答
0

我遇到了类似的问题,并且能够通过为 include 标签提供 layout_width 和 layout_height 来解决它。

于 2013-07-12T01:32:12.390 回答