3

从 [Android Getting Started][1] 教程中,我正在尝试构建我的第一个应用程序。然而,这是一个相当大的过程。当我遇到错误 *main_activity_actions cannot be resolve or is not a field* for this line 时,我在 [this page][2] 上的“将操作添加到操作栏”处:

inflater.inflate(R.menu.main_activity_actions, menu);

所以我在 SO 上找到了一个类似的帖子,它建议删除import android.R;然后执行Project -> Clean并重建。由于我没有import android.R;它,我只是尝试添加它,进行清理并重建,但这给我留下了更多错误。所以我再次删除并import android.R;再次进行了清理和重建,但现在它仍然给了我所有这些新错误,说:R cannot be resolved to a variable对于以下几行(这些行看起来并不彼此靠近,而是在整个文件中):

setContentView(R.layout.activity_main);
inflater.inflate(R.menu.main_activity_actions, menu);
EditText editText = (EditText) findViewById(R.id.edit_message);

作为参考,总文件在 pastebin 上

有人可以帮我吗?我做错了什么,我该如何解决?

[编辑] 在我的 res/menu/main_activity_actions.xml 中的代码下方。如果您需要查看更多代码,请告诉我!

<menu xmlns:android="http://schemas.android.com/apk/res/android">
    <!--  Search, should appear as action button -->
    <item android:id="@+id/action_search"
        android:icon="@drawable/ic_action_search"
        android:title="@string/action_search"
        android:showAsAction="ifRoom" />

    <!-- Settings, should always be in the overflow -->
    <item android:id="@+id/action_settings"
        android:title="@string/action_settings"
        android:showAsAction="never" />

    <!-- Add some other thing, just cuz I can.. -->
    <item android:id="@+id/action_something_else"
        android:title="@string/action_something_else"
        android:showAsAction="never" />

</menu>
4

8 回答 8

2

删除导入的 R 文件,然后尝试清理项目,然后重新构建,应该可以工作。

于 2013-09-10T09:37:26.130 回答
1

如果图像名称有任何问题,请检查您的 xml 或检查 res 文件夹文件夹。或检查 Window/showview/Errorlog

于 2013-09-10T10:19:07.160 回答
1

protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
}

给你的主要活动 xml 文件名setContentView(R.layout.your_activity_main);

于 2013-09-10T11:23:18.180 回答
1

如果有人对此仍有问题,请确保 XML 文件 main_activity_actions.xml 位于 /res/menu/ 而不是 /res/layout

于 2014-03-03T13:36:00.290 回答
0

将“R.menu”替换为“R.layout”,如下所示->>

inflater.inflate(R.layout.main_activity_actions, menu);
于 2013-10-24T17:50:10.153 回答
0

我也有这个问题,在我的例子中,xml 文件的名称是 main.xml not main_activity_actions。将其更改inflater.inflate(R.menu.main_activity_actions, menu);inflater.inflate(R.menu.main, menu);解决问题。

于 2014-07-03T23:11:14.803 回答
0

此外,确保将 action_search 和 action_settings 放入 values/strings.xml,以防它们不存在。

<resources>

    <string name="app_name">MyApp</string>
    <string name="action_settings">Settings</string>
    <string name="action_search">Search</string>
    <string name="edit_message">Enter a message</string>
    <string name="button_send">Send</string>
    <string name="title_activity_display_message">My Message</string>
    <string name="hello_world">Hello world!</string>

</resources>

我遇到了同样的问题,而且我愚蠢地没有检查是否定义了 action_search。此外,“drawables”文件夹中缺少“android:icon”中引用的 png。

于 2014-01-01T06:17:13.113 回答
0

检查 res 文件夹中的所有 XML 文件。您的 XML 文件之一可能有一些错误

于 2013-09-10T09:38:09.357 回答