详细信息如下,但基本上我正在尝试理解我的Droid上抛出这个错误的原因。
详细信息:我正在努力跟上C2DM的步伐。我正在测试使用C2DM的推送通知服务(到目前为止,国际海事组织相当酷),通过C2DM向运行在安卓上的应用程序发送通知。
我的Droid (运行Android2.2.2)没有显示通知,每当我认为设备收到通知时,我都会看到一个堆栈跟踪写入LogCat。
我不知道是什么在生成堆栈跟踪。我知道每次我通过城市飞艇的网站向设备发送推送通知时都会生成推送通知。
我非常确定我已经正确配置了我的C2DM,城市飞艇和安卓应用程序,因为我可以在安卓模拟器上使用相同的应用程序和谷歌账户成功地接收和显示通知。仅供参考- Android应用程序是城市飞船的示例android推送应用程序,使用我的配置信息进行了编辑。
由于它在Android模拟器中工作,但在我的实际设备上失败,我假设是我的设备中的某些东西导致它失败。因此,下面对堆栈跟踪很感兴趣。
11-11 16:15:28.894: E/TalkProvider(4433): query db caught
11-11 16:15:28.894: E/TalkProvider(4433): java.lang.IllegalArgumentException: the bind value at index 2 is null
11-11 16:15:28.894: E/TalkProvider(4433): at android.database.sqlite.SQLiteProgram.bindString(SQLiteProgram.java:234)
11-11 16:15:28.894: E/TalkProvider(4433): at android.database.sqlite.SQLiteQuery.bindString(SQLiteQuery.java:182)
11-11 16:15:28.894: E/TalkProvider(4433): at android.database.sqlite.SQLiteDirectCursorDriver.query(SQLiteDirectCursorDriver.java:48)
11-11 16:15:28.894: E/TalkProvider(4433): at android.database.sqlite.SQLiteDatabase.rawQueryWithFactory(SQLiteDatabase.java:1345)
11-11 16:15:28.894: E/TalkProvider(4433): at android.database.sqlite.SQLiteQueryBuilder.query(SQLiteQueryBuilder.java:330)
11-11 16:15:28.894: E/TalkProvider(4433): at com.google.android.gsf.talk.TalkProvider.queryInternal(TalkProvider.java:1740)
11-11 16:15:28.894: E/TalkProvider(4433): at com.google.android.gsf.talk.TalkProvider.query(TalkProvider.java:1436)
11-11 16:15:28.894: E/TalkProvider(4433): at android.content.ContentProvider$Transport.query(ContentProvider.java:163)
11-11 16:15:28.894: E/TalkProvider(4433): at android.content.ContentResolver.query(ContentResolver.java:245)
11-11 16:15:28.894: E/TalkProvider(4433): at com.google.android.gsf.gtalkservice.DatabaseHelper.getOffTheRecordCursor(DatabaseHelper.java:756)
11-11 16:15:28.894: E/TalkProvider(4433): at com.google.android.gsf.gtalkservice.ChatSession.queryOtrCursor(ChatSession.java:206)
11-11 16:15:28.894: E/TalkProvider(4433): at com.google.android.gsf.gtalkservice.ChatSession.<init>(ChatSession.java:168)
11-11 16:15:28.894: E/TalkProvider(4433): at com.google.android.gsf.gtalkservice.ChatMgr.createChatSession(ChatMgr.java:264)
11-11 16:15:28.894: E/TalkProvider(4433): at com.google.android.gsf.gtalkservice.ChatMgr.processIncomingMessage(ChatMgr.java:721)
11-11 16:15:28.894: E/TalkProvider(4433): at com.google.android.gsf.gtalkservice.ChatMgr.processPacket(ChatMgr.java:521)
11-11 16:15:28.894: E/TalkProvider(4433): at org.jivesoftware.smack.PacketReader$ListenerWrapper.notifyListener(PacketReader.java:1860)
11-11 16:15:28.894: E/TalkProvider(4433): at org.jivesoftware.smack.PacketReader.processListeners(PacketReader.java:451)
11-11 16:15:28.894: E/TalkProvider(4433): at org.jivesoftware.smack.PacketReader.access$200(PacketReader.java:91)
11-11 16:15:28.894: E/TalkProvider(4433): at org.jivesoftware.smack.PacketReader$3.run(PacketReader.java:154)
11-11 16:15:28.894: E/Smack/Packet(4433): [PacketReader] listenerThread: caught exception
11-11 16:15:28.902: E/Smack/Packet(4433): notify conn error. close connection!
11-11 16:15:28.902: E/Smack/Packet(4433): java.lang.NullPointerException
11-11 16:15:28.902: E/Smack/Packet(4433): at com.google.android.gsf.gtalkservice.ChatSession.queryOtrCursor(ChatSession.java:208)
11-11 16:15:28.902: E/Smack/Packet(4433): at com.google.android.gsf.gtalkservice.ChatSession.<init>(ChatSession.java:168)
11-11 16:15:28.902: E/Smack/Packet(4433): at com.google.android.gsf.gtalkservice.ChatMgr.createChatSession(ChatMgr.java:264)
11-11 16:15:28.902: E/Smack/Packet(4433): at com.google.android.gsf.gtalkservice.ChatMgr.processIncomingMessage(ChatMgr.java:721)
11-11 16:15:28.902: E/Smack/Packet(4433): at com.google.android.gsf.gtalkservice.ChatMgr.processPacket(ChatMgr.java:521)
11-11 16:15:28.902: E/Smack/Packet(4433): at org.jivesoftware.smack.PacketReader$ListenerWrapper.notifyListener(PacketReader.java:1860)
11-11 16:15:28.902: E/Smack/Packet(4433): at org.jivesoftware.smack.PacketReader.processListeners(PacketReader.java:451)
11-11 16:15:28.902: E/Smack/Packet(4433): at org.jivesoftware.smack.PacketReader.access$200(PacketReader.java:91)
11-11 16:15:28.902: E/Smack/Packet(4433): at org.jivesoftware.smack.PacketReader$3.run(PacketReader.java:154)
11-11 16:15:28.902: D/Smack(4433): [XMPPConn] close connection, notifyClosed=false
发布于 2011-11-15 03:29:35
我做了更多的谷歌搜索,找到了一个2010年的变通described in this Google Group post。该问题似乎与Google Talk应用程序有关,建议的解决方法如下:
“我进入Talk并关闭了自动登录,然后我退出了。我再次测试,我能够在我的应用程序中收到消息。”
一旦我这样做了,我就能够在没有堆栈跟踪的情况下在设备上接收到推送通知。如果有人能添加任何关于为什么会发生这种情况的信息,我会很感兴趣。
https://stackoverflow.com/questions/8100708
复制相似问题