WakeLock未lockingGCM_LIB

我的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 ,我可以尝试〜catch或使用isHeld()

但我不确定这是最好的解决scheme,我想知道为什么会发生这种情况。

一些猜测是BroadcastReceiver和Service在http://groups.google.com/group/cw-android/browse_thread/thread/9716bc101ce72fb4不同的过程。

但是这甚至可能吗? 我从来没有在清单中使用android:process,所以BroadcastReceiver和Service应该在同一个(主)进程中,不是吗?

Solutions Collecting From Web of "WakeLock未lockingGCM_LIB"

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

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

正如马克所说:

是的,与WakefulIntentService碰到了那些人。 如果您愿意创build自己的GCMBaseIntentService分支,请将wakeLock release()调用包装在isHeld()检查中以避免此类崩溃。