我正在教自己如何在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文件中读取任何其他内容,例如字符串或任何内容。有谁知道可能导致此错误的原因。我正在撕扯我的头发。我知道计算机不会撒谎,但我看到它应该是应有的一切,就像程序只是不会读它一样?
答案 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 generated
类R.java
)。
第二件事,当您的布局添加到R.java
时,它将位于名为layout
的静态类中(在您的情况下,您有static class menu
)
毕竟,删除导入android.R
(如果有导入)
然后在尝试按ID找到您的布局时,请导入您的类R(com.yourpackage.R
)。