首次开发安卓应用程序时如何修复 java 中的"R.menu.main"?



所以我下载了Android应用程序教程告诉我的所有内容,并且我正在使用Eclipse,但是我在R.menu.main 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文件夹,但也没有用。帮助?

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

您的 xml 文件中可能存在错误。这将导致 R 文件无法生成。修复该问题并重建您的项目,您应该没问题

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

我假设你在这方面很陌生,无论你转向哪里,你都有一千个问题。在那个阶段,我的诀窍就是得到一些东西,任何东西,工作。在那之后,我会继续小心翼翼地在第一次成功中构建(嗯,它的副本,实际上......我是那个偏执狂(。

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

从中,你会发现你不必担心Stackoverflow[这篇文章]给出的答案中的很多细节(至少,直到你获得更多经验(。

(请注意,这些东西,更详细,在这里找到,但我会给你一个严肃的"让我们开始吧"的版本(

在 Eclipse 菜单中...

文件 ->

新建 -> 安卓应用程序项目

将出现"新的Android应用程序"对话框窗口

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

在第一个对话窗口之后,您将再获得四个对话框窗口。接受每个对话框的所有默认值,只需继续单击"下一步",直到到达最后一个对话框。在那里,只需单击完成。

此时,正在创建项目。根据您的计算机,这可能需要几秒钟。您可以通过显示在 Eclipse 窗口右下角的消息传递看到进度。那里什么也没看到...它被创建。

如果你的Android/Eclipse设置很好,那么你很快就会在包资源管理器中看到一个"MyTestApp"项目。项目将打开(你将在层次结构中看到一堆文件夹(。"activity_main.xml"将在"布局"文件夹下突出显示,所有这些都在MyTestApp项目文件夹下突出显示。

单击"我的测试应用"项目文件夹以将其选中。然后,在 Eclipse 菜单中...

项目

-> 构建项目

同样,观察 Eclipse 窗口右下角的状态消息。如果您的计算机很快,那么您可能无法及时发现它们。那里什么也没看到...您的项目已生成。

在 Eclipse 菜单中...

运行 ->运行

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

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

预先警告,模拟器似乎需要很长时间才能启动。要有耐心。要非常有耐心。您应该会看到该应用程序即将运行。

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

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

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

。似乎没问题。无错误指示。

您还会注意到源代码顶部没有"R 类型"导入。

请注意,如果在包资源管理器中向下挖掘到"gen"文件夹底部的"MyTestApp"项目文件夹下,则有一个 R.java 文件。这是在构建项目时自动生成的,并且是您的 getMenuInfother 引用的文件。

所有这一切的重点是,你将拥有(如果你的Android/Eclipse设置很好(一些工作的东西,给你一个启动点来玩其他东西。

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

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

而不是

import android.R;

import com.example.R;

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

如果要在项目中查找生成的文件,它应该位于gen目录下。 如果项目编译正确,则应自动生成 R 文件并将其放置在其中。 如果没有发生这种情况,则建议使用项目清理。

public boolean onCreateOptionsMenu(Menu menu) {
    MenuInflater inflater = getMenuInflater();
    inflater.inflate(R.menu.activity_main, menu);
    return true;
}

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

删除"导入安卓。R;">

可能会发生此类错误,因为 XML 文件主目录中存在错误.xml

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

编码无关,只需使用 Android SDK 管理器安装正确的工具和软件包即可。如果要使用 android 4.0 (API 14(,请安装所有软件包并在"工具"下安装软件包。它对我有用。

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

在res中创建一个名为"menu"的新目录;然后在该目录中创建一个名为"main"的xml文件。 菜单膨胀将膨胀的正是这个文件。

我遇到了同样的问题,然后我单击了带有 Gradle 文件的同步项目,它对我有用您可以在 Tools->Android->Sync Project with Gradle files

<目录。>

将其命名为"菜单">

在该目录中创建一个名为 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" />

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

相关内容

  • 没有找到相关文章

最新更新