我刚刚下载并安装了新的Android SDK。我想创建一个简单的应用程序来测试它。

向导创建了以下代码:

package eu.mauriziopz.gps;

import android.app.Activity;
import android.os.Bundle;

public class ggps extends Activity {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
    }
}

但是Eclipse给出了错误

R不能被分解

在网上

setContentView(R.layout.main);

Why?

PS:我在res/layout/下有一个名为main.xml的XML文件。


当前回答

确保所有资源文件都没有大写扩展名。我发现我保存了一些带有大写扩展名。png的图像。我把它改成。png,一切都恢复正常了。

其他回答

根据前面的建议,确保你的Android目标已经设定好:

右键单击项目 选择属性 在左侧菜单中选择Android 在适当的项目构建目标旁边的方框中打勾。 单击“应用”并“确定”

编辑:一年后,我发现了另一个原因。我的可绘制文件夹中有一个。jpg图像,它的名称与。png图像相同。在我的代码中引用这张图像一定是混淆了程序,它给出了“R不能被解析”的错误。

R.java是Android Eclipse插件创建的文件 构建应用程序。R.java是在“gen”下创建的 目录中。此文件由“res”中的信息生成。 目录中。如果在Eclipse上运行select“Project”->“Clean… 菜单,它将删除,然后重新生成R.java文件。

“R不能被解决”的问题发生在你改变你的 在AndroidManifest.xml文件中的包名。它使用安卓系统 包名下创建子目录“gen”目录,其中 它存储R.java文件。

Eclipse may have problems executing clean, because it is confused about where the R.java file is when you have changed the Android package name. You can either rename the subdirectory under gen to match your new package name, or you can change your package name back to the old name. Do the clean and then change the package name to the new name you want. This works best if you stop Eclipse from trying to build while you are changing the package name. Under the "Project" menu uncheck the option to "Build Automatically" and also when the "Clean..." dialog asks if it should "Start a build immediately" uncheck the box so it doesn't try to build while you are changing the package name. After you have changed the name you can turn "Build Automatically" back on again.

Note that if your AndroidManifest.xml file package name does not match your Java package name, Eclipse will end up automatically adding an "import <your Android package name>.R;" line in all your .java files that have any references to R. If you change your AndroidManifest.xml package name, sometimes Eclipse does not update all of these added imports. If that happens, use the Eclipse refactoring (ALT + Shift + R) to change the import statement in one of your Java files to your new AndroidManifest.xml package name. It is best to do this while you have disabled "Build Automatically".

这可能是由于手动重命名AndroidManifest.xml中的包而导致的问题

另一种选择是使用内置工具重命名包,这将照顾到大多数问题,避免R not found问题。

Right Click on the project
Click on Android Tools
Click on Rename Application Project
Enter the new package name

然后将出现一个弹出窗口,要求应用更改,包括R工作区。

在android中重命名包名

这对我很管用。

我没有“import android”。R’在eclipse向导创建的全新项目中。默认的XML布局文件也是小写的。

问题是eclipse没有生成R.java。再多的清理/重新启动也没有任何效果。

我注释了setContentView和getMenuInflator调用,make成功后,Eclipse生成了R.java。

一旦生成了R.java,我就可以取消setContentView和getMenuInflator的注释。

检查上面的类文件导入,确保没有android的导入。R,如果它有,然后删除它,然后按Ctrl + Shift + o,选择packagename。R不导入另一个。