4

因此,我下载了 Android 应用程序教程告诉我的所有内容,并且我正在使用 Eclipse,但我不断收到一条错误main消息R.menu.main

public boolean onCreateOptionsMenu(Menu menu) {
    // Inflate the menu; this adds items to the action bar if it is present.
    getMenuInflater().inflate(R.menu.main, menu);
    return true;

我已经导入android.R;了,但是没有用;我删除了那条线,然后我去了Project>Clean,它仍然没有自行修复。关于这个主题的其他人一直说要从你的包中导入“R 文件”,但我检查了所有的包和类,没有任何名为R. 我尝试导入res文件夹,但也没有用。帮助?

4

11 回答 11

8

您的 res 文件夹中应该有一个main.xml文件可以指向。如果你有它并且它仍然无法正常工作,那么它可能是 R 文件的问题。众所周知,这会导致问题。您不需要导入 R,因为它会自动构建。

您的 xml 文件中可能存在错误。这将导致 R 文件无法构建。解决这个问题并重建你的项目,你应该没问题

于 2013-06-19T16:32:36.643 回答
3

您指的是哪个 Android 应用教程?

我将假设您在这方面非常陌生,以至于无论您转向哪里,您都会遇到一千个问题。在那个阶段,对我来说,诀窍就是让一些东西,任何东西,工作。在那之后,我会小心翼翼地在第一次成功中继续构建(嗯,它的副本,实际上......我就是那个偏执狂)。

所以... 我在此提供快速引导您完成在 Android/Eclipse 环境中创建应用程序的步骤。如果事情开始崩溃,那么您的设置可能不正确。但是,如果您的设置良好,那么您应该在大约十分钟内就有一个正在运行的应用程序。

从那里,您会看到您不必担心 Stackoverflow [this] 帖子给出的答案中的很多细节(至少,直到您获得更多经验)。

(请注意,可以在此处找到更详细的这些内容,但我会认真地给您一个“让我们开始吧”的版本)

在 Eclipse 菜单中...

文件 -> 新建 -> Android 应用程序项目

将出现一个“新的 Android 应用程序”对话框窗口

在应用程序名称字段中键入“MyTestApp”,然后简单地接受其他所有内容。点击下一步。

在第一个之后,您将获得另外四个对话框窗口。接受它们的所有默认值,然后继续单击下一步,直到进入最后一个对话框。在那里,只需单击完成。

此时,项目正在创建中。根据您的计算机,这可能需要几秒钟。您可以看到 Eclipse 窗口右下角显示的消息的进度。那里什么都看不到……它被创建了。

如果您的 Android/Eclipse 设置良好,那么您应该很快会在 Package Explorer 中看到一个“MyTestApp”项目。该项目将打开(您会在层次结构中看到一堆文件夹)。“activity_main.xml”将在“layout”文件夹下突出显示,所有这些都在 MyTestApp 项目文件夹下。

单击 MyTestApp 项目文件夹,将其选中。然后,在 Eclipse 菜单中...

项目 -> 构建项目

同样,查看 Eclipse 窗口右下方的状态消息。如果您的计算机速度很快,那么您可能无法及时赶上它们。那里什么也看不到......你的项目已经建成。

在 Eclipse 菜单中...

运行 -> 运行

在对话框中选择 Android 应用程序,然后单击确定。

此时,您可能会或可能不会获得设备对话框。如果这样做,请选择启动新的 Android 虚拟设备(模拟器)。您可能需要转到管理器(有一个按钮)来设置设备。我使用 AVD_for_Nexus_One_by_Google。我知道一个有效。

请注意,模拟器似乎需要永远启动。要有耐心。非常耐心。您应该很快就会看到该应用程序正在运行。

所以,假设你在模拟器中看到一个正在运行的应用程序......让我们看看你最终不必担心什么......

如果您检查自动生成的 MainActivity.java 文件,在您刚刚创建的项目中,您会看到您关心的代码...

getMenuInflater().inflate(R.menu.main, menu);

……看起来不错。没有错误指示。

您还会注意到源代码顶部没有“R-type”导入。

请注意,如果您深入到“gen”文件夹的底部,在 Package Explorer 中的“MyTestApp”项目文件夹下,会有一个 R.java 文件。这是在构建项目时自动生成的,并且是您的 getMenuInflater 引用的文件。

所有这一切的重点是您将拥有(如果您的 Android/Eclipse 设置良好)一些工作,为您提供一个启动点来玩其他东西。

祝你好运。我肯定玩得很开心。

于 2013-06-19T20:45:51.580 回答
1

因为您使用 R.menu.main,所以您的程序将在 res/menu 文件夹中找到文件 main.xml。因此,您只需在 res/menu 中创建一个新文件 main.xml。并且不要将 android.R 导入您的班级。

于 2016-04-10T06:36:50.107 回答
0

代替

import android.R;

利用

import com.example.R;

其中 com.example 是您自己项目的命名空间。

如果你想在你的项目中找到生成的文件,它应该在gen目录下。如果您的项目编译正确,R 文件应该会自动生成并放置在那里。如果这没有发生,那么建议使用 Project Clean。

于 2013-06-19T16:44:27.203 回答
0

与编码无关。只需使用 Android sdk 管理器安装正确的工具和包。如果您想使用 android 4.0 (API 14),请安装所有软件包并在 Tools 下安装软件包。它对我有用。

于 2013-08-21T17:08:22.323 回答
0
public boolean onCreateOptionsMenu(Menu menu) {
    MenuInflater inflater = getMenuInflater();
    inflater.inflate(R.menu.activity_main, menu);
    return true;
}

确保您在 res\menu 文件夹中有 main.xml 文件

删除“import android.R;”

于 2013-06-19T16:35:47.257 回答
0

可能会发生此类错误,因为您在 XML 文件 main.xml 中有错误

确保所有资源文件中都没有错误,并且一切都正确。当那里出现问题时,源代码中对 res 文件夹的所有引用都将失败。还要确保不要导入 android.R,因为这些是来自 Android SDK 的资源。只需删除该导入,它应该引用项目中的资源文件夹。

于 2013-06-19T16:55:43.203 回答
0

右键单击“res”文件夹<新<目录。

将其命名为“菜单”

在该目录中创建一个名为 main_menu 的新 xml

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

<item
    android:id="@+id/edit_item"
    android:title="Edit" />
<item
    android:id="@+id/delete_item"
    android:title="Delete" />

于 2020-03-24T00:14:27.350 回答
0

我遇到了同样的问题,然后我单击了 Sync Project with Gradle files,它对我有用 你可以在 Tools->Android->Sync Project with Gradle files 中找到该选项

于 2017-09-27T18:14:37.387 回答
0

根据您完成项目设置的方式,通常可能不会自动生成文件夹 res/menu。因此,为了使菜单膨胀,您必须有一个菜单来膨胀。

在 res 中创建一个名为“menu”的新目录;然后在所述目录中创建一个名为'main'的xml文件。menuInflater 将膨胀的正是这个文件。

于 2017-03-13T20:23:20.623 回答
-1

Android 版本可能没有文件夹 res/menu。如果是这样,请创建 xml 并将其复制到文件夹中以进行故障排除。

于 2018-03-30T06:13:50.117 回答