3

Details below but basically I'm trying to understand what on my Droid is throwing this error.

Details: I'm trying to get up to speed with C2DM. I'm testing using Urban Airship's Push Notification service (pretty cool so far IMO) to send a notification via C2DM to an app running on Android.

My Droid (running Android 2.2.2) doesn't display the notification and I see a stack trace written to LogCat each time I think the notification is received on the device.

I have no idea what is generating the stack trace. I do know it gets generated each time I send a Push Notification, via Urban Airship's website, to the device.

I'm fairly certain I have my C2DM, Urban Airship, and Android app configured properly because I can successfully receive and display a notification, using the same app and Google account, on an Android emulator. FYI - the Android app is Urban Airship's sample android push app edited with my config info.

Since it works in the Android emulator and fails on my actual device, I'm assuming there's something with my device that is causing it to fail. Hence the interest in stack trace below.

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
Justin
  • 6,031
  • 11
  • 48
  • 82

1 Answers1

5

I did some more Googling and was able to track down a workaround described in this Google Group post from 2010. The issue appears to be related to the Google Talk application and the suggested workaround is as follows:

"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."

Once I did that I was able to receive a Push Notification on the device without the stack trace. I'd be interested if anyone can add any info about why this was occurring.

Justin
  • 6,031
  • 11
  • 48
  • 82