与属性android:id(attr)参考不兼容

时间:2018-09-30 12:39:16

标签: android

我是android studio软件开发的新手,当我开始构建新软件时,就会发生此错误。

错误:“ 0 + id / nav_home”与属性android:id(attr)引用不兼容。 消息{种类=错误,文本=错误:'0 + id / nav_home'与属性android:id(attr)引用不兼容。,消息来源= [C:\ Users \ Ray \ AndroidStudioProjects \ MyCatholic \ app \ src \ main \ res \ menu \ navigation_menu.xml:14],原始消息=,工具名称= Optional.of(AAPT)}

这是我的代码

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

<item
android:id="0+id/nav_post"
android:title="Add New Post"
    android:icon="@drawable/add_post"/>

<item
    android:id="0+id/nav_profile"
    android:title="My Profile"
    android:icon="@drawable/profile_icon"/>

<item
    android:id="0+id/nav_home"
    android:title="Home"
    android:icon="@drawable/home"/>

<item
android:id="0+id/nav_friends"
android:title="Friends"
    android:icon="@drawable/friends"/>

<item
    android:id="0+id/nav_find_friends"
    android:title="Find Friends"
    android:icon="@drawable/find_people"/>


<item
    android:id="0+id/nav_message"
    android:title="Message"
    android:icon="@drawable/messages"/>

<item
    android:id="0+id/nav_setting"
    android:title="Settings"
    android:icon="@drawable/settings"/>

<item
    android:id="0+id/nav_logout"
    android:title="Log Out"
    android:icon="@drawable/logout"/>


</menu>

我错过了什么吗?

3 个答案:

答案 0 :(得分:6)

android:id="0+id/your_id"

无效的语法。是:

android:id="@+id/your_id"

将所有0+id替换为@+id

答案 1 :(得分:0)

我遇到了

的相同错误

AAPT:错误:“关于”与属性ID(attr)引用不兼容。

我的代码是这个;

<item
                android:id="about"
                android:icon="@drawable/ic_about_black_24dp"
                android:title="About" />

与初始问题的代码略有不同,但是我遵循了this的答案(在接受的答案之上),并通过添加“ @ + id”来更改代码,如下所示;

<item
                android:id="@+id/about"
                android:icon="@drawable/ic_about_black_24dp"
                android:title="About" />

然后它对我有用。

答案 2 :(得分:0)

我有相同的确切错误,但原因不同。就我而言,我应该将字符串移动到strings.xml文件中。

android:description: A string that describes the service to users. 
The label should be set as a reference to a string resource, 
so that it can be localized like other strings in the user interface.

source