我一直收到这个错误。我应该让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();
}
你究竟如何解决这个问题?
答案 0 :(得分:50)
查看顶部的import
语句。如果你说的是import android.R
,那就有问题了。它可能不是唯一的,因为这些'R'错误可能很棘手,但绝对肯定至少是问题的一部分。
如果没有解决问题,请确保您的eclipse插件(ADT)和Android SDK完全是最新的,通过手动将其从操作系统中删除,从模拟器/手机中删除项目,并清理项目(启动Eclipse-> Project-> Clean ...)。确保你的东西是完全最新的听起来很傻,但早期版本的ADT和SDK有很多与R文件有关的恼人的bug,这些bug已被清除。
仅供参考,R类中显示的内容是从项目res(aka资源)文件夹中的内容生成的。 R类允许您引用资源(例如图像或字符串),而无需在整个地方执行文件操作。它也做其他的事情,但这是另一个答案。 Android操作系统使用类似的方案 - 它有一个资源文件夹,类android.R是访问android资源文件夹中的东西的方式。在单个类中,您使用自己的资源和标准的android资源时会出现问题。通常情况下,您可以在顶部说import
,然后使用名称的最后一位引用一个类(例如,import java.util.List
允许您在类中编写List
并且编译器知道你的意思是java.util.List
)。当您需要使用两个命名相同的类时,就像自动生成的R类一样,那么您可以导入其中一个,并且只要您想要它就必须完全限定另一个。通常我导入我的项目的R文件,然后只是说android.R.whatever当我想要一个Android资源。
另外,重申Andy,不要自动修改R文件。这不是它的意思。
答案 1 :(得分:44)
不要修改R类。该错误意味着您的XML布局存在语法错误,并且无法自动生成R.尝试查看并发布你不确定的xml代码,如果有的话。
编辑:还:从文件顶部的导入中删除“import android.R”(如果有)
答案 2 :(得分:29)
一种可能的解决方案: -
摘要:确保您使用import com.yourpkgdomainname.yourpkgappname.R
代替import android.R
详细信息:当我更改布局XML文件中其他位置引用的标签的ID时出现问题。由于此错误,R文件首先停止生成。 Eclipse在处理布局文件错误方面很糟糕。
当我更正ID引用时(项目清理几次并且Eclipse重新启动,我注意到我的导入包现在有:
import android.R
将其更改为以下修正错误:
import com.example.app.R
答案 3 :(得分:6)
我刚刚修复了我的问题,右键单击布局文件夹并单击选项验证。有些窗口会出现,你只需克服确定即可。
答案 4 :(得分:5)
可能是您在布局目录中创建了一个新的xml文件,该文件包含一个大写字母,该字母在布局目录下的xml文件中是不允许的。
希望得到这个帮助。
答案 5 :(得分:3)
把它扔到那里,但尝试手动重新输入。您的引号有可能是“错误的”,因为类似的unicode字符看起来很相似,但不是引号。
如果您从网站上复制/粘贴代码snippits,那可能是您的问题。
答案 6 :(得分:3)
正如Jake所提到的,问题可能是因为复制/粘贴代码。 检查res / layout下的main.xml。如果那里没有id字段那么你就有问题了。 一个典型的例子如下
<com.androidplot.xy.XYPlot
android:id="@+id/mySimpleXYPlot"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_marginTop="10px"
android:layout_marginLeft="20px"
android:layout_marginRight="20px"
title="A Simple Example"
/>
答案 7 :(得分:3)
有时候eclipse可能会与同一目录中的其他项目混淆。
只需更改包名称(不要忘记更改Android清单文件),确保目录中尚未使用包名称。它可能有用。
答案 8 :(得分:2)
在main.xml
中(或定义项目的任何位置),确保R
项目的ID定义为@+id/...
以下是一个带按钮的示例:
<Button android:text="B1" android:id="@+id/button_one"
android:layout_gravity="center_horizontal|center"
android:layout_height="fill_parent" android:layout_width="wrap_content" />
其中每一项都很重要,因为:
@
必须位于字符串+
表示如果不存在(无论您的项目是什么),它都会创建答案 9 :(得分:2)
只需清理您的项目,即可自动生成R.这对我有用。
答案 10 :(得分:2)
当我在Java类中工作一次时,我也遇到了这个错误。我的问题只是我的xml文件及其中的引用未被保存。如果在选项卡中同时打开了xml文件和java类,请检查以确保选项卡中的xml文件名没有*。
希望这有帮助。
答案 11 :(得分:2)
它给了我足够的痛苦,但我找到了解决方案:
PROJECT ---> Clean ----> (Sele)
答案 12 :(得分:2)
似乎是什么问题,我只是修好我以防万一有人想知道 - 由于其他错误我自动关闭构建,当我创建一个新项目时它说R.layout.main有问题需要导入R等我自然而然地作为一个新手。然后我手动建立它与主要问题。尝试按原样构建程序,删除导入R,它应该没问题。
答案 13 :(得分:2)
我自己也遇到了这个问题。
最后发现我的问题是我添加的.png文件中有一个大写字母,导致完全相同的问题。在我关闭文件并重新打开Eclipse之前,Eclipse从未标记过该文件。
答案 14 :(得分:1)
我有这个问题,但在我的情况下,它通过重启日食来解决。
答案 15 :(得分:0)
对我来说,问题的原因是我的drawable-hdpi文件夹中有两个同名的图像。一旦我解决了这个问题,那么R.java就会重建自己并且问题会自动解决。
答案 16 :(得分:0)
选择“项目”选项卡,然后单击“自动构建”,以激活“构建所有”选项,然后单击“构建全部”,并始终以小写字母启动xml文件名。