最近我收到了一些用户反馈的奇怪的堆栈跟踪:
Android Version: 2.3.5
Phone Model: GT-I9001
Stacktrace:
java.lang.IllegalStateException: sender id not set on constructor
at com.google.android.gcm.GCMBaseIntentService.getSenderIds(GCMBaseIntentService.java:125)
at com.google.android.gcm.GCMBaseIntentService.onHandleIntent(GCMBaseIntentService.java:237)
at android.app.IntentService$ServiceHandler.handleMessage(IntentService.java:59)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:130)
at android.os.HandlerThread.run(HandlerThread.java:60)
我正在使用GCM库的Rev.3版本,根据文档,构造函数不再需要传递senderID(在C2DM时期是这样的)-同时,在我的设备和许多其他用户的设备上都没有崩溃。有人能够解释一下这些设备上发生了什么,并最好提供一些解决方案吗?对于这些用户来说,一个无法工作的GCM可能是一个选择,因为设备推送是可选的,但我不希望它崩溃...
编辑这里是使用的源代码: https://github.com/ligi/gobandroid/blob/master/src/org/ligi/gobandroid_hd/GCMIntentService.java