如何修复 Android Widget 的“进程错误”问题?

50

我开发了一个Android小部件,一切正常,然后我添加了一些额外的功能,并通过Android市场推送了更新。现在人们抱怨它不再工作。

我在日志中看到的错误是:

07-14 10:33:44.016: WARN/ActivityManager(78): Unable to launch app ... 
for broadcast Intent { act=android.appwidget.action.APPWIDGET_ENABLED 
cmp=... }: process is bad 
07-14 10:33:44.026: WARN/ActivityManager(78): finishReceiver called 
but none active 
07-14 10:33:44.026: WARN/ActivityManager(78): Unable to launch app ... 
for broadcast Intent { act=android.appwidget.action.APPWIDGET_UPDATE 
cmp=... (has extras) }: process is bad 
07-14 10:33:44.036: WARN/ActivityManager(78): finishReceiver called 
but none active 

我已经搜索过了,但是找不到任何关于"process is bad error"是什么意思的地方,所以我不知道该如何修复它。重新启动手机(或模拟器)可以让错误消失,但这不是我想让用户做的。 请问有人能帮我解释一下这个错误的原因并告诉我如何修复吗?


1
有趣,我也见过几次。会留意答案的,谢谢提问 ;) - dimsuz
嗨,11689466196137005894161,我遇到了同样的问题,请发布你的代码。 - Jorgesys
14个回答

0

0

我曾经遇到过同样的问题。我尝试了重启和重新安装应用程序,但都没有解决问题。我感到很沮丧。后来我将继承自AppWidgetProvider的类中的所有内容都删除了,只留下了两个空方法:onUpdate和onReceive。最终问题得以解决。

也许这种方法并不能解决你的问题,但是不试一下怎么知道呢?


0

我遇到了类似的问题。当我检查我的代码时,我意识到问题出在默认值上。确保你的默认值是合理和正面的。例如,如果你有一个在特定间隔启动的后台服务,请确保你为其设置的默认值是适当的。


-4

我曾经也遇到过同样的问题。但是,值得一提的是,我可以通过在Eclipse中删除一些换行符号神奇地解决了这个问题。例如,我更改了以下代码:

Intent clickIntent = new Intent(this.getApplicationContext(),
MyWidgetProvider.class);

Intent clickIntent = new Intent(this.getApplicationContext(),MyWidgetProvider.class);

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接