我刚刚下载并安装了新的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不能解决的原因有几个。

大多数情况下,此错误发生在XML文件错误。这个错误可以通过Clean和重建你的项目来解决,也可以重新启动你的android studio。 有时候如果你在AndroidManifest中编码一些错误的东西,这个错误可能会发生,所以请检查这个。 如果资源包含相同的名称或包含无效字符,则会发生此错误。

如果你已经检查了这些,但你仍然面临着同样的问题,那么继续:


当Android Studio无法正确生成R.java文件时,就会出现这个错误,所以你必须遵循以下步骤:

第一步:从app目录中安全删除build文件夹。 步骤2:在Android Studio中,File -> Invalidate cache / Restart 步骤3:构建->清洁项目然后构建->重建项目。

所以构建文件夹将重新生成,希望错误已经消失。


如果仍然发现Error,那么可能您之前已经执行了包名重构。在这种情况下,您可以按ALT + ENTER一起导入R。

其他回答

发生这种情况的另一种方式是,从其中一个示例启动一个新项目。当您稍后决定将包名从com.example.android.foo更改为您自己的域时,您将需要修改清单和单个.java文件中的几个值。

如果您使用的是Eclipse,请找到.java文件的包语句并选择QuickFix。这里可能有几个选项,但你想要的是指示“移动‘foo.java’到打包‘com.youdomain.android.yourapp’”的选项。保存文件,它可以自动构建或做其他人建议,并尝试“项目->清洁”。

在许多可能导致这种情况的问题中,这是为我解决的问题。

右键单击项目->属性-> Java构建路径->源。

然后添加gen和src文件夹。出于某种原因,Android希望我只保存整个文件夹。

如果有人感兴趣(我可能会在这里挽救您的生命),我有一个错误,R.xml无法解析,在GLS项目上略有不同。嗯。在R.java中查找后,我发现一个自动生成的类,XML.java,(我想)不在那里。

解决方案吗?它需要在res: res\xml中创建一个新文件夹和一个名为default_values.xml的文件 在那里。然后一切都好了。

以防你没有那个文件,它是:

<?xml version="1.0" encoding="utf-8"?>
<PreferenceScreen
    xmlns:android="http://schemas.android.com/apk/res/android">
</PreferenceScreen>

尝试使您的新XML布局文件名小写。例如,使用my_file.xml而不是myFile.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".