Well, after another user apparently had 6 crashes in 2 minutes from
GoogleAnalyticsTracker.trackEvent() right when launching my app, I've
updated my app to wrap all Google Analytics calls in try-catch blocks
to quench the symptoms. Even though the crash reports were rare, this
seems to be the only/simplest way for me to avoid an occasional bad
user experience due to use of Google Analytics.
Regards
java.lang.RuntimeException: Unable to start activity
ComponentInfo{vOICe.vOICe/vOICe.vOICe.The_vOICe}:
java.lang.IllegalStateException: no transaction pending at
android.app.ActivityThread.performLaunchActivity(ActivityThread.java:
2663) at
android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:
2679) at android.app.ActivityThread.access$2300(ActivityThread.java:
125) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:
2033) at android.os.Handler.dispatchMessage(Handler.java:99) at
android.os.Looper.loop(Looper.java:123) at
android.app.ActivityThread.main(ActivityThread.java:4627) at
java.lang.reflect.Method.invokeNative(Native Method) at
java.lang.reflect.Method.invoke(Method.java:521) at
com.android.internal.os.ZygoteInit
$MethodAndArgsCaller.run(ZygoteInit.java:878) at
com.android.internal.os.ZygoteInit.main(ZygoteInit.java:636) at
dalvik.system.NativeStart.main(Native Method) Caused by:
java.lang.IllegalStateException: no transaction pending at
android.database.sqlite.SQLiteDatabase.endTransaction(SQLiteDatabase.java:
555) at
com.google.android.apps.analytics.PersistentEventStore.putEvent(Unknown
Source) at
com.google.android.apps.analytics.GoogleAnalyticsTracker.createEvent(Unknown
Source) at
com.google.android.apps.analytics.GoogleAnalyticsTracker.trackEvent(Unknown
Source) at vOICe.vOICe.The_vOICe.a(Unknown Source) at
vOICe.vOICe.The_vOICe.onCreate(Unknown Source) at
android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:
1047) at
android.app.ActivityThread.performLaunchActivity(ActivityThread.java:
2627) ... 11 more
FINGERPRINT {verizon/thunderc/thunderc/thunderc:2.2/FRF91/eng.lge.
20101101.102025:user/release-keys}
On Dec 31 2010, 3:55 pm, blindfold <[email protected]> wrote:
> Hmm, I have only one global tracker object that I create in the
> onCreate() of my main activity, and with a regular dispatch interval
> through the format tracker.start("UA-12345-0", nseconds, this), so I'd
> say that it all works from one alive thread. However, in one pair of
> crash logs the first GoogleAnalyticsTracker.trackEvent() crash occurs
> after my app had been running for some time, while the second
> GoogleAnalyticsTracker.trackEvent() crash occurs immediately at app
> startup only 3 minutes later, for the same device FINGERPRINT,
> suggesting that indeed some sort of lock had lived on even across runs
> to cause a second crash because the second run would not be owning the
> lingering lock. This was for a Samsung GT-I5800 running Android 2.1-
> update1.
>
> On Dec 31, 3:21 pm, H <[email protected]> wrote:
>
> > Looking in the analytics source after you've called trackEvent(), I suspect
> > that error is coming out when it is using a database transaction to insert
> > the event into the database. Once inserted, it calls endTransaction as well
> > as setTransactionSuccessful. Both of these do this check:
>
> > if (!mLock.isHeldByCurrentThread()) {
> > throw new IllegalStateException("no transaction pending");
> > }
>
> > So it could be worth checking to see if you are tracking the event from a
> > thread that has ended, or calling dispatch from a different thread...?
>
> > HTH.
--
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