如何解决Android Widget的"进程坏"错误?

wli*_*erg 45 android android-widget

我开发了一个Android Widget,它工作正常.我添加了一些额外的功能,并推动了Android Market的更新.现在人们抱怨说它不再起作用了.

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

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 
Run Code Online (Sandbox Code Playgroud)

我已经搜索过了,但是我无法找到任何错误的过程是错误的意思,所以我不知道如何修复它.重新启动手机(或模拟器)会使错误消失,但这不是我希望用户做的事情.有人可以帮我解释错误的原因是什么以及如何解决它?

NPi*_*ike 9

我刚刚在市场包装之前就亲自体验过这一点.我按照指南并将android:label ="@ string/app_name"属性添加到我的清单中的应用程序元素中...

  1. 卸载您的应用
  2. 重启电话/模拟器
  3. 推送没有此属性的新应用

中提琴!现在适合我!

编辑:匹配评论.

  • 您是否有任何理由相信这是属性更改而不是修复错误的重新启动?许多其他用户报告可以通过重新启动(显然)清除此随机错误. (12认同)

Vit*_*uel 9

当我的BroadcastReceiver反复泄漏导致系统杀死我的应用程序的异常时发生在我身上.接收器的下一次调用将导致"进程坏"日志.

我的解决方案是确保BroadcastReceiver没有异常泄漏.

这些是应用程序被杀死时的日志(尝试查找它们并查找原因):

W/ActivityManager? Process com.company.app has crashed too many times: killing!
I/ActivityManager? Killing proc 9344:com.company.app/u0a10239: crash
Run Code Online (Sandbox Code Playgroud)


mob*_*bob 8

我遇到了同样的问题,我目前的理论是appWidget崩溃了,当它重新启动时,它有相同的坏持久数据,每次重启时都会崩溃.当这种情况经常发生时,操作系统会"强制停止"appWidget.我的乐队助手是有一个触摸事件,即用户将触摸的"setOnClickPending"(如果有必要,可以通过挫折),并且将在appWidget内部处理并重置appWidget.