我刚刚下载并安装了新的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。
对我来说,这是因为使用了“私人”android drawables:
[2015-11-26 18:59:48 - MyAndroidApp]
/Users/myname/git/MyAndroidApp/res/menu/drawer_view.xml:24:
error: Error: Resource is not public. (at 'icon' with value
'@android:drawable/ic_menu_home').
有趣的是,直到我使用图标删除了对文件的引用,这个错误才出现在控制台中。
android:entries="@menu/drawer_view"
现在解决方案非常明显,将图标复制到我的项目(res/draw - xxxx /)并切换到本地引用。
@drawable/ic_menu_home
希望这能有所帮助。