Android 锁定GCM_库下的WakeLock

Android 锁定GCM_库下的WakeLock,android,wakelock,Android,Wakelock,我的android应用程序收到如下崩溃报告。(非常罕见) 比如,我可以尝试~catch或使用isHeld() 但我不确定这是否是最好的解决方案,我想知道为什么会发生这种情况 有人猜测广播接收机和服务处于不同的过程中 喜欢 但这有可能吗?我从来没有在清单中使用过android:process,所以BroadcastReceiver和Service应该在同一个(主)进程中,不是吗?+NoraBora这是您在项目中包含的GCM库中的一个bug。 这个bug仍然存在于gcm.jar的r3版本中 您可以在

我的android应用程序收到如下崩溃报告。(非常罕见)

比如,我可以尝试~catch或使用isHeld()

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

有人猜测广播接收机和服务处于不同的过程中 喜欢


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

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

您可以在此问题线程中找到更多信息:

正如马克所说:

是的,遇到了WakefulIntentService的人。如果你愿意的话 创建您自己的GCMBasEventService分支,包装WakeLock 在检查isHeld()时调用release()以避免此崩溃

您是否使用获取(超时)方法获取唤醒锁?它是重复的:
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)