WakeLock заблокирован GCM_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 не заблокирован C2DM_LIB, я мог бы попробовать ~ catch или использовать isHeld()

но я не уверен, что это лучшее решение, и я хочу знать, почему это происходит.

Предполагается, что BroadcastReceiver и Service в разных процессах например http://groups.google.com/group/cw-android/browse_thread/thread/9716bc101ce72fb4.

Но возможно ли это? Я никогда не использовал андроид: процесс в манифесте, поэтому BroadcastReceiver и Service должны быть в одном и том же (основном) процессе, не так ли?

Ответ 1

+ NoraBora это ошибка из GCM lib, которую вы включили в свой проект. Эта ошибка все еще существует в версии r3 gcm.jar

Дополнительную информацию можно найти в этом выпуске: https://code.google.com/p/android/issues/detail?id=36364#makechanges

Как сказал Марк:

Yup, столкнулся с теми, у кого есть WakefulIntentService. Если вы готовы создайте свою собственную вилку GCMBaseIntentService, оберните WakeLock release() в чеке isHeld(), чтобы избежать этого сбоя.