“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(); }
你究竟如何解决这个问题?
不要修改R类。 这个错误意味着你的XML布局在语法上是错误的,而R不能被自动生成。 尝试寻找并发布你不确定的XML代码,如果有的话。
编辑:另外:从import文件顶部删除“导入android.R”(如果有)
看看你的import
报表顶部。 如果你说import android.R
,那么这是一个问题。 这可能不是唯一的,因为这些“R”错误可能会很棘手,但肯定至less是问题的一部分。
如果不能解决这个问题,请确保你的eclipse插件(ADT)和你的android SDK是完全的最新版本,从模拟器/手机中删除项目,手动删除操作系统,清理项目(启动Eclipse- >项目 – >清除…)。 听起来很愚蠢,以确保你的东西是完全最新的,但早期版本的ADT和SDK有很多烦人的错误有关的R文件已经被清除。
只是供参考,在R类出现的东西是从您的项目res(又名资源)文件夹中的东西生成。 R类允许您引用资源(如图像或string),而不必在整个地方进行文件操作。 它也做了其他的东西,但这是另一个答案。 Android操作系统使用类似的scheme – 它有一个资源文件夹和类android.R是访问android资源文件夹中的东西的方式。 问题出现在同一个类中,同时使用自己的资源和标准的android资源。 通常情况下,你可以说在顶部import
,然后引用一个类,只需使用名称的最后一位(例如, import java.util.List
允许您只在类中编写List
,编译器知道您的意思是java.util.List
)。 当你需要使用两个被命名为相同的类的类时,就像自动生成的R类一样,那么你可以导入其中的一个类,并且只要你想expression它就必须完全限定另一个类。 通常我为我的项目导入R文件,然后只要说android.R.whatever当我想要一个android资源。
另外,为了重申Andy,不要自动修改R文件。 这不是如何使用。
一个可能的解决scheme:
总结:确保你使用import com.yourpkgdomainname.yourpkgappname.R
而不是import android.R
详细信息:当我更改布局XML文件中其他位置引用的标签的ID时,出现问题。 由于这个错误,R文件首先停止生成。 Eclipse在处理布局文件错误方面不好。
当我纠正ID引用(项目干净几次,Eclipse重新启动,我注意到我的导入包现在有:
import android.R
将其更改为以下固定的错误:
import com.example.app.R
我只是解决了我的问题右键单击布局文件夹,然后单击选项validation。 有些窗口会出现,你只要克服就好了。
可能是您在布局目录中创build了一个新的XML文件,该文件名称中包含大写字母,这在布局目录下的xml文件中是不允许的。
希望这个帮助。
只是扔在那里,但尝试手动重新input的东西。 有一个机会,你的引号是“错误的”,因为有一个类似的unicode字符看起来相似,但不是一个引号。
如果你从网站复制/粘贴代码snippits,那可能是你的问题。
正如杰克所说,问题可能是因为复制/粘贴代码。 检查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" />
有时日食可能会与同一目录中的其他项目混淆。
只需更改包名称(不要忘记在Android清单文件中更改),确保包名称不在目录中。 它可能工作。
刚刚遇到这个我自己。
最后发现我的问题是一个.png文件,我添加了一个大写字母,造成了完全相同的问题。 Eclipse没有标记文件,直到我closures它并打开Eclipse备份。
什么似乎是问题,我只是修复我的情况下,任何人都想知道 – 由于其他错误,我closures构build自动,当我创build一个新的项目,说R.layout.main有一个问题,需要导入R; 所以自然而然,作为新手,我做到了。 然后我手动build立,它有一个与主要问题。 尝试build立你的程序,删除导入R,它应该没事。
它给了我足够的痛苦,但我find了解决办法:
PROJECT ---> Clean ----> (Sele)
在main.xml
(或者任何你定义的项目)中,确保R
项目的ID是用@+id/...
定义的@+id/...
下面是一个button的例子:
<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" />
这些都是重要的,因为:
-
@
必须在string之前 -
+
表示它将创build如果不存在(无论您的物品是什么)
当我在Java类中工作一次时,我也有这个错误。 我的问题只是我的XML文件,其中的引用,没有保存。 如果您在选项卡中同时打开了xml文件和java类,请检查以确保选项卡中的xml文件名不包含*。
希望这可以帮助。
只需清理你的项目,R就会自动生成。 这对我有效。
对我来说,问题的原因是我的drawable-hdpi文件夹中有两个同名的图像。 一旦我解决了这个问题,R.java就自己重build了,问题自动解决了。
select“项目”选项卡,然后单击“自动生成”,以便“全部生成”选项将被激活,然后单击“全部生成”,并始终以小写启动xml文件名。