1

我正在自学如何在 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

4 回答 4

2

删除此行

import android.R;

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

 import com.example.marblez.R;

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

于 2012-11-18T19:38:01.123 回答
1

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

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

您当前正在导入只会返回 android 资源的 android.R。

于 2012-11-18T19:36:39.573 回答
1

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

于 2012-11-18T19:36:57.847 回答
1

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

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

毕竟这一切,删除进口android.R(如果有进口)

然后当试图通过它的 id 找到你的布局时,导入你的类 R( com.yourpackage.R) 。

于 2012-11-18T19:42:16.203 回答