找不到Android资源异常?


68

我在使用findViewById(id)时遇到了一个奇怪的问题。即使资源肯定存在,它也返回找不到资源。它是布局中的一个textview,紧挨另一个textview,我可以通过id找到其中一个textview,但另一个显示未找到资源。有什么可能会发生这种情况吗?


我们无法帮助您查看代码。您可以发布Java和XML文件的相关部分吗?
slayton 2011年

Answers:


41

尝试清理您的项目或发布一些代码。

如果您正在使用Eclipse,则有时无法正确地重新生成ID。这需要清理项目,有时需要刷新。


仅此而已...需要清理的项目到底发生了什么?
Bobbake4 2011年

在构建时,Eclipse经常会出错。
dymmeh 2011年

尽管我评论的太迟了,但是我也从几天开始面临这个问题。我正在使用Android Studio。我清理了代码,使它们无效并重新启动,关闭了计算机,然后重新启动,但是问题仍然存在。:(请帮助,我非常坚持。
Ali_Waris

275

确保您不是真的只是尝试将文本设置为数字,并期望它会自动转换为字符串。


这也解决了我的问题。我很惊讶他们没有包装Integer.toString()的方法,而是任何方法。
mszaro

4
当我尝试将文本中的数字设置为TextView时,这正是我的情况,该文本视图由Eclipse生成的引用地址指向。如果您也这样做,那么最终将更改目标TextView参考地址,从而产生这些错误。因此,您必须确保不要在TextView的setText()方法中输入数字(或整数)。
Aryo

1
这里同样的问题。我解决了将String.valueof(myInt)放入setText方法中的问题
androidevil,2014年

2
我曾经用过myTextView.setText(myInt + "");自己的@androider 。但是据THIS看来,myTextView.setText(Integer.toString(myInt));是最有效的方法。
凯文·克鲁伊森2014年

1
这个答案绝对是绝妙的。
索蒂2014年

26

异常引发的消息不是很具有描述性。在您尝试将int值转换为String的情况下,很有可能应用以下更改为我解决了此问题。

修复之前的代码:

 itemPrice.setText(foodMenuItems.get(position).getItemPrice());

修复后的代码:

 itemPrice.setText(Integer.toString(foodMenuItems.get(position).getItemPrice()));

2
或仅在您的int前面添加“”
Mightian

为我工作!他们应该实现它以抛出类
强制转换

对于Toast消息也是如此,当您想显示int消息是从pojo中获取消息时,Android Studio不会警告您
Ege Kuzubasioglu

18

只是为了弄清Terra Caines的答案,因为我看到它对人们影响很大。 TextView和其他文本组件,具有2个setText()功能和1个参数。

其中一个带有a String,一个带有int。该int显然是一个字符串资源,例如R.string.myString-这,对那些谁不知道,R.exm总是被表示为int。字符串用于将字符串放在此处。

因此,例如,我想将intx = 1;放在textView中。这样做mTextView.setText(x); 将导致textView使用资源功能,并且由于可能没有ID为1的资源,它将引发异常“找不到资源”。如果要在setText()函数中放入int或任何数字,请确保将其转换为String (x+"")(x.toString())将为您解决问题。

希望它可以为人们节省一些时间。


哦,漂亮的男人真的观察救了我的一天:)
萨米特

10

textViewCount.setText(someArray.size()); 是我的问题。

只需致电toString();即可解决问题。

    Integer size = mSomeArray.size();
    textViewReplyCount.setText(size.toString());

1
问题解决了,加入resultSizeOnUI.setText(((Integer)productSearchResultSize).toString());
居纳伊居尔泰金

3

确保您没有以编程方式设置任何不可用的属性。我遇到了同样的问题,原因是aRemoteView.setFloat(id,"setWeight",1.0f);到a LinearLayout,这在4.x之前的Android上不受支持,不幸的是,错误消息对此没有很大帮助。


0

就我而言,我有一个int变量(在Activity类的顶部),并且我试图将该int变量作为第二个参数传递给Toast.makeText()向用户显示),我不知道自己是愚蠢的还是android dev platform是!:p



0

我的情况下,我试图将具有项目android:color的drawable选择器传递给视图背景。这里的问题是您不能使用颜色选择器定义背景颜色,需要一个可绘制的选择器。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.