android - 是什么导致了这个堆栈跟踪? (gtalkservice & jivesoftware.smack)

标签 android push-notification android-c2dm urbanairship.com

详细信息如下,但基本上我是想了解我的 Droid 上是什么引发了这个错误。

详细信息: 我正在努力跟上 C2DM 的步伐。我正在测试使用 Urban Airship 的推送通知服务(到目前为止 IMO 非常酷)通过 C2DM 向在 Android 上运行的应用程序发送通知。

我的 Droid(运行 Android 2.2.2)不显示通知,每次我认为设备收到通知时,我都会看到堆栈跟踪写入 LogCat。

我不知道是什么生成了堆栈跟踪。我知道每次我通过 Urban Airship 的网站向设备发送推送通知时都会生成它。

我相当确定我的 C2DM、Urban Airship 和 Android 应用程序配置正确,因为我可以在 Android 模拟器上使用相同的应用程序和 Google 帐户成功接收和显示通知。仅供引用 - Android 应用程序是使用我的配置信息编辑的 Urban Airship 示例安卓推送应用程序。

由于它在 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

最佳答案

我做了更多的谷歌搜索,并找到了解决方法 described in this Google Group post从 2010 年开始。该问题似乎与 Google Talk 应用程序有关,建议的解决方法如下:

"I went into Talk and turned off auto-sign in, then I signed out. I tested again and I was able to receive the message inside my application."

一旦我这样做了,我就能够在没有堆栈跟踪的情况下在设备上收到推送通知。如果有人可以添加有关发生这种情况的原因的任何信息,我会很感兴趣。

关于android - 是什么导致了这个堆栈跟踪? (gtalkservice & jivesoftware.smack),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8100708/

相关文章:

android - 无法从 Assets 'index.android.bundle' 加载脚本。确保你的包被正确打包或者你正在运行一个打包服务器

javascript - 修改应用程序在后台时不调用 FCM/onMessageReceived 的通知

android - 在服务器上使用 ClientLogin 的 C2DM

java - 在 Google API 中获取最后位置时 FailureListener 的含义

android - 如何将 ScrollView 设置为我的布局?

android - Delphi Android 中的组件尺寸

ios - 保存 DeviceToken 供以后在 Apple 推送通知服务中使用

android - 在 iOS 和 Android 上处理推送通知场景

php - 使用 php 向 Google Cloud Messaging 发送通知给我未经授权的错误 401

android - C2DM - 角色发件人帐户