WakeLock锁定了GCM_LIB

时间:2013-04-04 11:03:35

标签: android wakelock

我的Android应用程序得到了崩溃报告,如下所示。(非常罕见)

java.lang.RuntimeException: WakeLock under-locked GCM_LIB
    at android.os.PowerManager$WakeLock.release(PowerManager.java:325)
    at android.os.PowerManager$WakeLock.release(PowerManager.java:300)
    at com.google.android.gcm.GCMBaseIntentService.onHandleIntent(GCMBaseIntentService.java:252)

java.lang.RuntimeException: WakeLock under-locked C2DM_LIB一样,我可以尝试〜捕获或使用isHeld()

但我不确定这是最好的解决方案,我想知道为什么会这样。

有人猜测,BroadcastReceiver和Service处于不同的进程中 比如http://groups.google.com/group/cw-android/browse_thread/thread/9716bc101ce72fb4

但这有可能吗?我从未在清单中使用过android:process,因此BroadcastReceiver和Service应该在同一个(主要)进程中,不应该是吗?

1 个答案:

答案 0 :(得分:3)

+ NoraBora这是您在项目中包含的来自GCM lib的错误。 这个bug仍然存在于gcm.jar的r3版本中

您可以在此问题主题中找到更多信息:https://code.google.com/p/android/issues/detail?id=36364#makechanges

正如马克所说:

  

是的,遇到了WakefulIntentService。如果你愿意的话   创建自己的GCMBaseIntentService派生,包装WakeLock   release()调用isHeld()来避免这种崩溃。