“id无法解析或不是字段”错误?

我一直收到这个错误。 我应该让id成为一个领域吗?

我的代码是:

 public void onCreate(Bundle icicle) { super.onCreate(icicle); setContentView(R.layout.main); ImageView mainimage = (ImageView) findViewById(R.id.mainanim); mainimage.setBackgroundResource(R.anim.mainanim); mainanimation = (AnimationDrawable) mainimage.getBackground(); } 

你究竟如何解决这个问题?

Solutions Collecting From Web of "“id无法解析或不是字段”错误?"

不要修改R类。 错误意味着XML布局存在语法错误,无法自动生成R. 尝试查看并发布你不确定的xml代码,如果有的话。

编辑:还:从文件顶部的导入中删除“import android.R”(如果有)

查看顶部的import语句。 如果你说import android.R ,那么那是一个问题。 它可能不是唯一的一个,因为这些’R’错误可能很棘手,但它绝对肯定至少是问题的一部分。

如果这不能解决问题,请确保您的eclipse插件(ADT)和您的Android SDK完全是最新的,通过手动将其从操作系统中删除,从模拟器/手机中删除项目,并清理项目(启动Eclipse- >项目 – >清除…)。 听起来确实你的东西是完全最新的听起来很愚蠢,但早期版本的ADT和SDK有很多与R文件相关的恼人的bug,这些bug已被清除。

仅供参考,R类中显示的内容是从项目res(aka资源)文件夹中的内容生成的。 R类允许您引用资源(例如图像或字符串),而无需在整个地方执行文件操作。 它也做其他的事情,但这是另一个答案。 Android OS使用类似的方案 – 它有一个资源文件夹,类android.R是访问android资源文件夹中的东西的方法。 当您在单个类中使用自己的资源和标准的android资源时,就会出现问题。 通常你可以在顶部说import ,然后使用名字的最后一位引用一个类(例如, import java.util.List允许你只在类中编写List ,编译器知道你的意思是java.util.List )。 当你需要使用两个命名相同的类时,就像自动生成的R类一样,那么你可以导入其中一个,你必须完全限定另一个你想要它的意思。 通常我导入我的项目的R文件,然后只是说android.R.whatever当我想要一个Android资源。

另外,重申Andy,不要自动修改R文件。 这不是它的意思。

一种可能的解决方案:

摘要:确保使用import com.yourpkgdomainname.yourpkgappname.R而不是import android.R

详细信息:当我更改布局XML文件中其他位置引用的标签的ID时发生问题。 由于此错误,R文件首先停止生成。 Eclipse在处理布局文件错误方面很糟糕。

当我更正ID引用时(项目清理几次并且Eclipse重新启动,我注意到我的导入包现在具有:
import android.R

将其更改为以下修复错误:
import com.example.app.R

我刚刚修改了我的问题,右键单击布局文件夹并单击选项validation。 一些窗口会出现,你只是clik好,没关系。

可能是您在布局目录中创建了一个新的xml文件,该文件包含一个大写字母,该大写字母在布局目录下的xml文件中是不允许的。

希望这有帮助。

把它扔到那里,但尝试手动重新输入。 您的引号有可能是“错误的”,因为类似的unicode字符看起来很相似,但不是引号。

如果您从网站上复制/粘贴代码snippits,那可能是您的问题。

正如Jake所提到的,问题可能是因为复制/粘贴代码。 检查res / layout下的main.xml。 如果没有id字段,那么你就有问题了。 一个典型的例子如下

  

有时eclipse可能会与同一目录中的其他项目混淆。

只需更改包名称(不要忘记更改Android清单文件),确保目录中尚未使用包名称。 它可能会奏效。

刚刚遇到过这个问题。

最后发现我的问题是我添加的.png文件中有一个大写字母,导致完全相同的问题。 在我关闭文件并重新打开Eclipse之前,Eclipse从未标记过该文件。

什么似乎是问题,我只是修复了我以防万一有人想知道 – 由于其他错误我自动关闭构建,当我创建一个新项目它说R.layout.main有一个问题,需要导入R; 我自然而然地作为一个新手。 然后我手动建立它与主要问题。 尝试按原样构建程序,删除导入R,它应该没问题。

它给了我足够的痛苦,但我find了解决方案:

 PROJECT ---> Clean ----> (Sele) 

main.xml (或者在您的项目定义的任何位置),确保使用@+id/...定义R项的@+id/...这是一个带按钮的示例:

  

其中每一项都很重要,因为:

  • @必须在字符串之前
  • +表示如果不存在则会创建(无论您的项目是什么)

当我在Java类中工作一次时,我也遇到了这个错误。 我的问题只是我的xml文件及其中的引用未被保存。 如果在选项卡中同时打开了xml文件和java类,请检查以确保选项卡中的xml文件名没有*。

希望这可以帮助。

只需清理您的项目,即可自动生成R. 这对我有用。

我有这个问题,但在我的情况下,它通过重新启动日食解决了。

对我来说,问题的原因是我的drawable-hdpi文件夹中有两个同名的图像。 一旦我解决了这个问题,那么R.java就会重建自己并且问题会自动解决。

选择Project选项卡,然后单击Build build,这样将激活Build all选项,然后单击build all。并始终以小写启动xml文件名。