Hi, I'm trying to integrate google analytics into my android application and I also want to use the INSTALL_REFERRER feature. I've followed the documentation, and when my app installs from the market, I can see that the com.google.android.apps.analytics.AnalyticsReceiver gets the referrer info successfully. I know this because in the log, I see:
DEBUG/googleanalytics(6730): Stored referrer:utmcsr=ericsite| utmccn=testing|utmcmd=email Now, my app uses the GoogleAnalyticsTracker instance in the usual way, starting it in the onCreate method of my main activity, stopping it in my onStop, and dispatching events in between. However, on the first run of the application (after initial install), a stacktrace is dumped in the log. It's a bit funny because it's not an uncaught exception, it's evidently an exception that was caught and logged when the AnalyticsReceiver received the INSTALL_REFERRER intent. This happened during install, but I guess android is logging it in my application when it first runs, because it's the only time i'd actually see it? It's a bit weird, anyway, here's the exception that's logged: WARN/SQLiteCompiledSql(6675): Releasing statement in a finalizer. Please ensure that you explicitly call close() on your cursor: INSERT INTO install_referrer(referrer) VALUES(?); WARN/SQLiteCompiledSql(6675): android.database.sqlite.DatabaseObjectNotClosedException: Application did not close the cursor or database object that was opened here WARN/SQLiteCompiledSql(6675): at android.database.sqlite.SQLiteCompiledSql.<init>(SQLiteCompiledSql.java: 62) WARN/SQLiteCompiledSql(6675): at android.database.sqlite.SQLiteProgram.<init>(SQLiteProgram.java:80) WARN/SQLiteCompiledSql(6675): at android.database.sqlite.SQLiteStatement.<init>(SQLiteStatement.java: 36) WARN/SQLiteCompiledSql(6675): at android.database.sqlite.SQLiteDatabase.compileStatement(SQLiteDatabase.java: 1145) WARN/SQLiteCompiledSql(6675): at android.database.sqlite.SQLiteDatabase.insertWithOnConflict(SQLiteDatabase.java: 1536) WARN/SQLiteCompiledSql(6675): at android.database.sqlite.SQLiteDatabase.insert(SQLiteDatabase.java: 1410) WARN/SQLiteCompiledSql(6675): at com.google.android.apps.analytics.PersistentEventStore.setReferrer(PersistentEventStore.java: 235) WARN/SQLiteCompiledSql(6675): at com.google.android.apps.analytics.AnalyticsReceiver.onReceive(AnalyticsReceiver.java: 35) WARN/SQLiteCompiledSql(6675): at android.app.ActivityThread.handleReceiver(ActivityThread.java:2810) WARN/SQLiteCompiledSql(6675): at android.app.ActivityThread.access $3200(ActivityThread.java:125) WARN/SQLiteCompiledSql(6675): at android.app.ActivityThread $H.handleMessage(ActivityThread.java:2083) WARN/SQLiteCompiledSql(6675): at android.os.Handler.dispatchMessage(Handler.java:99) WARN/SQLiteCompiledSql(6675): at android.os.Looper.loop(Looper.java:123) WARN/SQLiteCompiledSql(6675): at android.app.ActivityThread.main(ActivityThread.java:4627) WARN/SQLiteCompiledSql(6675): at java.lang.reflect.Method.invokeNative(Native Method) WARN/SQLiteCompiledSql(6675): at java.lang.reflect.Method.invoke(Method.java:521) WARN/SQLiteCompiledSql(6675): at com.android.internal.os.ZygoteInit $MethodAndArgsCaller.run(ZygoteInit.java:858) WARN/SQLiteCompiledSql(6675): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616) WARN/SQLiteCompiledSql(6675): at dalvik.system.NativeStart.main(Native Method) ERROR/Database(6675): close() was never explicitly called on database '/data/data/com.miniondev.pegsolitaire/databases/google_analytics.db' ERROR/Database(6675): android.database.sqlite.DatabaseObjectNotClosedException: Application did not close the cursor or database object that was opened here ERROR/Database(6675): at android.database.sqlite.SQLiteDatabase.<init>(SQLiteDatabase.java: 1810) ERROR/Database(6675): at android.database.sqlite.SQLiteDatabase.openDatabase(SQLiteDatabase.java: 817) ERROR/Database(6675): at android.database.sqlite.SQLiteDatabase.openOrCreateDatabase(SQLiteDatabase.java: 851) ERROR/Database(6675): at android.database.sqlite.SQLiteDatabase.openOrCreateDatabase(SQLiteDatabase.java: 844) ERROR/Database(6675): at android.app.ContextImpl.openOrCreateDatabase(ContextImpl.java:540) ERROR/Database(6675): at android.content.ContextWrapper.openOrCreateDatabase(ContextWrapper.java: 203) ERROR/Database(6675): at android.content.ContextWrapper.openOrCreateDatabase(ContextWrapper.java: 203) ERROR/Database(6675): at android.database.sqlite.SQLiteOpenHelper.getWritableDatabase(SQLiteOpenHelper.java: 98) ERROR/Database(6675): at com.google.android.apps.analytics.PersistentEventStore.setReferrer(PersistentEventStore.java: 232) ERROR/Database(6675): at com.google.android.apps.analytics.AnalyticsReceiver.onReceive(AnalyticsReceiver.java: 35) ERROR/Database(6675): at android.app.ActivityThread.handleReceiver(ActivityThread.java:2810) ERROR/Database(6675): at android.app.ActivityThread.access $3200(ActivityThread.java:125) ERROR/Database(6675): at android.app.ActivityThread $H.handleMessage(ActivityThread.java:2083) ERROR/Database(6675): at android.os.Handler.dispatchMessage(Handler.java:99) ERROR/Database(6675): at android.os.Looper.loop(Looper.java:123) ERROR/Database(6675): at android.app.ActivityThread.main(ActivityThread.java:4627) ERROR/Database(6675): at java.lang.reflect.Method.invokeNative(Native Method) ERROR/Database(6675): at java.lang.reflect.Method.invoke(Method.java:521) ERROR/Database(6675): at com.android.internal.os.ZygoteInit $MethodAndArgsCaller.run(ZygoteInit.java:858) ERROR/Database(6675): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616) ERROR/Database(6675): at dalvik.system.NativeStart.main(Native Method) This exception, it would seem, didn't stop my app from starting the tracker instance, or dispatching events, but still... it doesn't fill me with confidence. Does anybody know why the receiver is failing (sorta) ? Thanks! -Eric PS: There is some talk around the internet about an Analytics readme that contains the comment: "(NOTE: do not start the GoogleAnalyticsTracker in your Application onCreate() method if using referral tracking)." source: http://stackoverflow.com/questions/3110394 I can't find this readme, so i'm hesitant to put too much stock into the comment. Maybe it's from an old version of the analytics sdk? Anybody know anything about this? -- You received this message because you are subscribed to the Google Groups "Android Developers" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://groups.google.com/group/android-developers?hl=en

