2010-10-27 93 views
19

在win XP上使用Eclipse。我以前创建了一个应用程序或2,但我现在正在'真正'的版本,并获得上述错误。R.layout.main无法解析

我在创造一个1.5版本的Funnies,所以已经开始了2.1的新项目。如下

package xxx.guest; 

import android.R; 
import android.app.Activity; 
import android.content.Context; 
import android.graphics.Bitmap; 
import android.os.Bundle; 
import android.widget.Button; 
import android.widget.EditText; 
import android.widget.ImageView; 
import android.widget.TextView; 

public class briefme extends Activity { 

private String strURL; 
      ........ 
      ........ 

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 

项目(注意我已经删除了一些名字出于保密原因!)

任何想法发生了什么错误?

谢谢,

马丁。

Project screenshot here

回答

59

我会尝试令人耳目一新,如果不工作,关闭和打开项目。

如果这两个失败,删除并重新创建R(它应该自动生成)(复制它只是为了安全起见)。

我已经发生过几次这种事情,这些都是我通常为解决错误所做的三件事。

编辑:也尝试改变你的进口:

import android.R; 

到:

import your.package.R; 
+0

OK,修好了 - (ggogle终于想出了好:)) – 2010-10-27 16:16:01

+2

>我的项目已经包括一个r.java.at开始,R.layout.main工作良好。但是,添加一些代码后它不起作用,并且错误是R.layout.main无法解决。问题是什么? > 看看你的进口。机会是这样的: import android.R; 取自另一个Stackoverflow问: 将在那里。如果是这种情况,请将其删除,以便您的项目不会使用默认的Android资源类解析R,而是使用从/ res /文件夹自动生成的那个类。 – 2010-10-27 16:16:27

+0

非常感谢你+1 – IamStalker 2012-02-23 09:01:52

2

正如上文所述,简单地改变进口 “进口android.R;”与您的应用相关联“import your.package.name.R;”应该这样做。

1

您还可以检查/平台工具文件夹中的adb程序是否有权在系统中运行。如果没有,您的项目的R.java将不会生成。

3

在我这种情况下,这是因为他们是一个布局资源与文件名中的大写字母。资源没有编译,因为错误,并且因为R类缺失。

0

我的两毛钱。

在我的情况,我用了另一个变量具有相同名称的[R这导致编译错误。在指导用户输入确切的错误信息方面,Eclipse可以变得更好。

0

可能重复R cannot be resolved - Android error

在那篇文章中,我们有一个很好的答案。

参考http://source.android.com/source/using-eclipse.html我们得到如下片段:

注:尤其是当你问的Eclipse的Eclipse有时喜欢在你的文件使用资源的顶部添加一个“进口android.R”语句,分拣或以其他方式管理进口。这会导致你的制造破裂。注意这些错误的导入语句并删除它们。

所以答案是删除,而不是重命名import android.R;

这样做的原因是,your.package.R因为你分享包是可见的。 import android.R;掩盖了这一点,所以删除它更清洁,而不是将其更改为冗余。

0

如果你有没有ia32库的64位Linux平台,那么这个问题也会发生。我花了相当长的时间才把这个问题弄糟,看到问题与无法执行32位代码无关。

0

在我的情况(看到其他教程),你必须改变:

setContentView(R.layout.main); 

要:

setContentView(R.layout.activity_main);