Android资源未findexception?
我有一个奇怪的问题,使用findViewById(id)。 即使资源确实存在,资源也没有find。 这是在另一个textview旁边的布局中的textview,我可以通过idfind的textviews之一,但另一个显示资源未find。 这有什么理由可能发生?
尝试清理您的项目或张贴一些代码。
有时,如果您使用的是Eclipse,则无法正确重新生成ID。 这需要清理项目,有时会刷新。
确保你不是真的只是设置文本到一个数字,并期望它自动转换为一个string。
exception抛出的消息不是很具描述性。 它非常可能的情况下,你正试图把int值转换为string ,应用下面的更改为我解决了这个问题。
解决之前的代码:
itemPrice.setText(foodMenuItems.get(position).getItemPrice());
解决之后的代码:
itemPrice.setText(Integer.toString(foodMenuItems.get(position).getItemPrice()));
textViewCount.setText(someArray.size());
是我的问题。
只需调用toString();
解决问题。
Integer size = mSomeArray.size(); textViewReplyCount.setText(size.toString());
只是为了澄清Terra Caines的答案,因为我看到它发生在很多人身上; TextView
和其他文本组件具有2个带1个参数的setText()
函数。
其中之一是一个String
和一个int。 int
显然是一个string资源,比如R.string.myString
– 对于那些不知道的人来说, R.exm
总是被表示为int
。 string是用来放置一个string的。
所以例如我想把int x = 1;
在一个textView中。 做mTextView.setText(x);
会导致textView使用资源function,因为可能没有资源与ID 1它会抛出exception资源找不到。 如果你想在setText()函数中放置一个int或任何数字,确保将其转换为String
(x+"")
或(x.toString())
将为你做诡计。
希望能为人们节省一些时间。
确保你没有设置任何不可用的编程属性。 我有同样的问题,原因是RemoteView.setFloat(id,"setWeight",1.0f);
到一个LinearLayout
,在4.x之前不支持Android。不幸的是,这个错误消息对此没有太大的帮助。