无法从Android应用程序中的R.Java读取内容

时间:2012-11-18 19:30:32

标签: java android import r.java-file

我正在教自己如何在eclipse中编写一个android应用程序。我在R.Java中有以下内容

 public static final class menu {
    public static final int activity_marblez_main=0x7f060000;
}

然而,在我的主java文件中,我似乎无法在R.java中“看到”我的对象。

package com.example.marblez;

import android.R;
import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;

public class MarblezMain extends Activity {

//Custom View for Marble View
private MarblezView mView;

//ID for the menu exit option 
private final int ID_MENU_EXIT = 1; 

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    mView = new MarblezView(getApplicationContext(), this);
    mView.setFocusable(true);

    setContentView(R.layout.activity_marblez_main);
}

我的问题是,当我写这行时:

 setContentView(R.layout.activity_marblez_main);

它仍然看不到activity_marblez_main。我导入了R.Java文件。我删除了它并重新生成它,但它不能很好地“activity_marblez_main”。为什么?具体错误是:

"activity_marble_main cannot be resolved or is not a field" 

就此而言,我也不能从R.java文件中读取任何其他内容,例如字符串或任何内容。有谁知道可能导致此错误的原因。我正在撕扯我的头发。我知道计算机不会撒谎,但我看到它应该是应有的一切,就像程序只是不会读它一样?

4 个答案:

答案 0 :(得分:2)

删除此行

import android.R;

因为您要导入平台的R文件,而不是您的文件,应该是:

 import com.example.marblez.R;

(但你也可以没有,这没关系)。您可以通过按 CTRL - SHIFT - O (字母“o”)在Eclipse中重新生成导入。确保您没有导入平台R.

答案 1 :(得分:1)

您的R.java文件是由eclipse Android开发工具生成的,您永远不需要使用它。

当你导入它虽然重要时它应该是你的包名。所以对我来说是import com.jenxsol.application.R

您当前正在导入android.R,它只返回Android资源。

答案 2 :(得分:1)

您正在导入androids R文件,而不是您的文件。修复导入。

答案 3 :(得分:1)

首先是:创建布局activity_marble_main(如果您没有创建它),如果是,则会自动添加到您的(auto generatedR.java)。

第二件事,当您的布局添加到R.java时,它将位于名为layout的静态类中(在您的情况下,您有static class menu

毕竟,删除导入android.R(如果有导入)

然后在尝试按ID找到您的布局时,请导入您的类R(com.yourpackage.R)。