当布局没有改变时,为什么会出现“无法查找视图”的异常?

时间:2010-12-16 14:32:29

标签: android android-widget

我正在使用我的一个Android小部件,它使用LauncherPlus添加滚动功能,并且遇到了令人沮丧的问题。我目前发布的代码版本,再次使用LauncherPlus,运行良好,滚动和所有。我正在添加一个请求的功能,允许更改文本大小,但在测试更新时会抛出异常。例外是:

mobi.intuitit.android.widget.SimpleRemoteViews$ActionException: can't find view:0x7f070041

我没有更改布局中的任何内容,并且唯一的代码更改引用了已在同一代码段中引用的视图ID。我查看了R.java,发现了哪个资源被引用,再次,没有任何改变。以下是问题所在的代码:

itemViews.setBoundBitmap(R.id.profile, "setImageBitmap", SonetProvider.SonetProviderColumns.profile.ordinal(), 0);
itemViews.setBoundCharSequence(R.id.friend, "setText", SonetProvider.SonetProviderColumns.friend.ordinal(), 0);
itemViews.setBoundCharSequence(R.id.created, "setText", SonetProvider.SonetProviderColumns.createdtext.ordinal(), 0);
itemViews.setBoundCharSequence(R.id.message, "setText", SonetProvider.SonetProviderColumns.message.ordinal(), 0);

应用第一行时抛出异常。出于好奇,我改变了这些行的顺序,并且每一行都会导致异常,但同样,布局没有改变。抛出异常后,窗口小部件将成功构建,但我无法发布此更新,并抛出异常(强制关闭)。有什么想法存在资源问题吗?谢谢!

更新: 我发现这个讨论似乎可能无法在应用程序更新上重新加载窗口小部件资源: http://groups.google.com/group/android-developers/browse_thread/thread/55a8e44974e8c6ad?fwc=1&pli=1 有没有人有这方面的经验,或解决方法?这可能就是我所面对的。

1 个答案:

答案 0 :(得分:1)

使用项目>在Eclipse中清除或从命令行清除ant clean,然后再试一次。由于资源ID是整数,因此它们在引用它们的类的字节码中内联,因此有时您的预编译类可能与新编译中的新资源ID不同步。我主要使用命令行工作,并始终将clean添加到我的ant命令(例如ant clean install)以避免此问题。