我刚刚下载并安装了新的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文件。


当前回答

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文件中的android:versionName从1.0更改为1.1。这重新生成了我的R.java文件,我很高兴。我希望这能帮助到一些人。

重新启动计算机。 除了这种方法,什么也帮不了我

R在android项目中是自动生成的资源,有时会发生这种情况,不知道为什么,但你试着从项目中自动生成选项

删除其他项目或android.r文件的其他导入 =>总是记住,如果你总是面临自动生成id或自动删除R文件的问题,你可以生成静态id,如字符串文件,并使用@id而不是@+id

我的项目有一个r.java.在开始,R.layout。主要工作好。但是,在添加了一些代码后,它不能工作,错误是r.b ayout.main不能解决。有什么问题吗?

查看您的导入。很有可能这句话是:

import android.R;

会在那里。如果是这种情况,删除它,这样你的项目就不会用默认的Android资源类来解析R,而是用从你的/res/文件夹自动生成的类来解析R。

一些答案建议重新启动计算机。我发现重启adb服务器就足够了——如果你刚刚更新了Android SDK,这一点尤其正确。

通过linux shell重启adb:

$ cd $ANDROID_SDK/platform-tools
$ ./adb kill-server
$ ./adb start-server

您可能需要重新启动Eclipse,以便重新连接到重新启动的adb服务器。如果Eclipse没有自动编译项目,您可能需要执行一个clean/build。