属性缺少android命名空间前缀

时间:2013-01-05 11:56:55

标签: android xml

我正在创建一个使用res文件夹中的menu.xml文件的Android应用程序。但我得到了上述错误。这是什么意思?我该如何解决?

menu.xml文件:

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

<item id="@+id/my_location"
android:icon="@drawable/my_location"
android:title:="Current location" />

<item id="@+id/mapview_satellite"
android:icon="@drawable/satelliteview"
android:title="Satellite View" />

<item id="@+id/mapview_normal"
android:icon="@drawable/normalview"
android:title="Normal view" />
</menu>

9 个答案:

答案 0 :(得分:24)

<item id="@+id/my_location"更改为<item android:id="@+id/my_location"。这三个地方都有。

另外,在这里:android:title:="Current location"删除title之后的冒号。

答案 1 :(得分:10)

您还需要确保属性列表中包含以下两行:

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

如果省略这些,Eclipse将只给你“丢失的android前缀”错误。

答案 2 :(得分:4)

信不信由你,对于那些试图通过下载书籍中的示例进行操作的人,您可能需要确保您有正确的引号,因为编译器可以理解它们。我得到了与OP相同的错误,以及许多类似的解析错误,因为我试图以小的方式修改XML文件。我注意到粘贴的代码片段中的引号与键盘上的引号不同(在片段中它们向右倾斜,如果我自己键入它们,它们是直接上下)。

我知道这听起来很疯狂,我自己也很难相信,但当我重新输入引号时,它工作正常。

答案 3 :(得分:2)

在属性解决我的问题之前添加 android:

答案 4 :(得分:1)

在项目的res/menu/目录中创建XML文件不在res文件夹中 &安培;

不要忘记为id属性添加前缀。

试试这个

<?xml version="1.0" encoding= "utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:id="@+id/my_location"
        android:icon="@drawable/my_location"
        android:title="Current location" />

    <item android:id="@+id/mapview_satellite"
        android:icon="@drawable/satelliteview"
        android:title="Satellite View" />

    <item android:id="@+id/mapview_normal"
        android:icon="@drawable/normalview"
        android:title="Normal view" />
</menu>

答案 5 :(得分:1)

有时可能会正确编写XML代码,因此您需要简单地删除当前所拥有的内容,然后从行号中删除它,然后重新粘贴它,并修复错误。如果没有,那么你知道你的代码是错误的。 xml默认是识别您最初放置的内容,需要删除才能重新开始。相信我,我只花了3天时间解决了这个问题并完成了上面所说的,祝你好运。

答案 6 :(得分:0)

您忘记为id属性添加前缀。试着这样做:

<?xml version="1.0" encoding= "utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:id="@+id/my_location"
        android:icon="@drawable/my_location"
        android:title="Current location" />

    <item android:id="@+id/mapview_satellite"
        android:icon="@drawable/satelliteview"
        android:title="Satellite View" />

    <item android:id="@+id/mapview_normal"
        android:icon="@drawable/normalview"
        android:title="Normal view" />
</menu>

答案 7 :(得分:0)

有两个错误愚蠢的错误

- id isn't it attribute is android:id
- First itme android:title:= you have written extra colon after title

这里是实现代码

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

    <item
        android:id="@+id/my_location"
        android:icon="@drawable/my_location"
        android:title="Current location"/>
    <item
        android:id="@+id/mapview_satellite"
        android:icon="@drawable/satelliteview"
        android:title="Satellite View"/>
    <item
        android:id="@+id/mapview_normal"
        android:icon="@drawable/normalview"
        android:title="Normal view"/>

</menu>

答案 8 :(得分:0)

如果你有这样的事情:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android">
   <data>
        <variable  name="person" type="com.abc.PersonEntity"/>
    </data>

在布局标记内移动数据:

<layout xmlns:android="http://schemas.android.com/apk/res/android"  >
       <data>
          <variable  name="person" type="com.abc.PersonEntity"/>
       </data>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"> 
...