所以我下载了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
"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" />
Android 版本可能没有文件夹 res/菜单。如果是这样,请创建 xml 并将其复制到文件夹中以进行故障排除。