Android Studio 错误:无法解析 Xml 中的符号

Ste*_*fan 3 java xml android android-studio

我正在关注 google Android Studio 第一个 Android 应用程序教程。但是当我尝试向我的应用程序添加搜索栏时,我现在遇到了 3 个奇怪的错误。

我现在就在这里,就像教程一样添加了 XML 代码。

http://developer.android.com/training/basics/actionbar/adding-buttons.html

我得到的错误:

Error:(5, 23) No resource found that matches the given name (at 'icon' with value '@drawable/ic_action_search').
Error:(6, 24) No resource found that matches the given name (at 'title' with value '@string/action_search').
Run Code Online (Sandbox Code Playgroud)

在 android:showAsAction="ifRoom" 我收到奇怪的错误:

Excecution failed for task ':app:procesDebugResources'.
Run Code Online (Sandbox Code Playgroud)

这是我的 XML 代码:

<menu xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools" tools:context=".MainActivity">
    <item android:id="@+id/action_search"
        android:icon="@drawable/ic_action_search"
        android:title="@string/action_search"
        android:showAsAction="ifRoom" />
    <item android:id="@+id/action_settings" android:title="@string/action_settings"
        android:orderInCategory="100" app:showAsAction="never" />
</menu>
Run Code Online (Sandbox Code Playgroud)

这段代码有什么问题吗?

感谢您的阅读/帮助!

Jam*_*mes 5

尝试这个:

<menu xmlns:android="http://schemas.android.com/apk/res/android"
      xmlns:app="http://schemas.android.com/apk/res-auto"
      xmlns:tools="http://schemas.android.com/tools" tools:context=".MainActivity">
    <item android:id="@+id/action_search"
          android:icon="@android:drawable/ic_menu_search"
          android:title="@string/action_search"
          app:showAsAction="ifRoom" />
    <item android:id="@+id/action_settings" android:title="@string/action_settings"
          android:orderInCategory="100" app:showAsAction="never" />
</menu>
Run Code Online (Sandbox Code Playgroud)

有几点需要注意:

1)您应该将 android:showAsAction 标签更改为 app:showAsAction,这是为了与旧版本的 android 兼容。

2) 我已将您的搜索图标更改为 Android 中嵌入的搜索图标。您正在做的是尝试使用本机 Android 图标。自从你的教程以来,这似乎已经改变了。您始终可以使用自己的图标并将其放在项目的 res/drawable 文件夹中。

3) 正如 @drawable 是对您的可绘制对象的引用一样,@string 是对 res/values 文件夹中的 strings.xml 文件的引用。您需要打开此 xml 文件并添加如下内容:

<string name="action_search">Search</string>
Run Code Online (Sandbox Code Playgroud)

希望有帮助,祝你好运。