2015-06-04 33 views
9

Quando cerco di utilizzare Google Analytics, ho un problema quando si cerca di utilizzare User-Id:ANR con Google Analytics

public class MyApplication extends Application { 
    public static GoogleAnalytics analytics; 
    public static Tracker tracker; 
    @Override 
public void onCreate() { 
    super.onCreate(); 
    DatabaseManager.initializeInstance(new DatabaseHandler(this)); 
    analytics = GoogleAnalytics.getInstance(this); 
    analytics.setLocalDispatchPeriod(1800); 

    tracker = analytics.newTracker("UA-XXXXXX-2"); // Replace with actual tracker/property Id 
    tracker.enableExceptionReporting(true); 
    tracker.enableAdvertisingIdCollection(true); 
    tracker.enableAutoActivityTracking(true); 
} 

Nel mio BaseActivity.java abilito reale di Rapporto:

@Override 
public void onStart() { 
    super.onStart(); 
    GoogleAnalytics.getInstance(this).reportActivityStart(this); 

} 
    @Override 
    protected void onStop() { 
    super.onStop(); 
    GoogleAnalytics.getInstance(this).reportActivityStop(this); 
} 

Questo codice funziona ed è OK.

Il codice che provoca l'ANR è nel mio SplashScreenActivity.java:

MyApplication.tracker.set("&uid", mUser.userName); 
MyApplication.tracker.send(new HitBuilders.EventBuilder().setCategory("UX").setAction("Getting Username").build()); 

Ecco il registro delle ANR

----- pid 14019 at 2015-06-04 16:25:28 ----- 
Cmd line: com.myapp.mobile 

DALVIK THREADS: 
(mutexes: tll=0 tsl=0 tscl=0 ghl=0) 

"main" prio=5 tid=1 WAIT 
    | group="main" sCount=1 dsCount=0 obj=0x41457508 self=0x414478e0 
    | sysTid=14019 nice=0 sched=0/0 cgrp=[no-cpu-subsys] handle=1074728752 
    | schedstat=(248687749 130187981 316) utm=17 stm=7 core=0 
    at java.lang.Object.wait(Native Method) 
    - waiting on <0x414575d8> (a java.lang.VMThread) held by tid=1 (main) 
    at java.lang.Thread.parkFor(Thread.java:1231) 
    at sun.misc.Unsafe.park(Unsafe.java:323) 
    at java.util.concurrent.locks.LockSupport.park(LockSupport.java:157) 
    at java.util.concurrent.locks.AbstractQueuedSynchronizer.parkAndCheckInterrupt(AbstractQueuedSynchronizer.java:813) 
    at java.util.concurrent.locks.AbstractQueuedSynchronizer.doAcquireSharedInterruptibly(AbstractQueuedSynchronizer. java:973) 
    at java.util.concurrent.locks.AbstractQueuedSynchronizer.acquireSharedInterruptibly(AbstractQueuedSynchronizer. java:1282) 
    at java.util.concurrent.FutureTask$Sync.innerGet(FutureTask.java:219) 
    at java.util.concurrent.FutureTask.get(FutureTask.java:82) 
    at com.google.android.gms.analytics.internal.zzb.zzhI((null):-1) 
    at com.google.android.gms.analytics.GoogleAnalytics.zzhk((null):-1) 
    at com.google.android.gms.analytics.ExceptionReporter.uncaughtException((null):-1) 
    at java.lang.ThreadGroup.uncaughtException(ThreadGroup.java:693) 
    at java.lang.ThreadGroup.uncaughtException(ThreadGroup.java:690) 
    at dalvik.system.NativeStart.main(Native Method) 

"pool-2-thread-1" prio=5 tid=13 WAIT 
    | group="main" sCount=1 dsCount=0 obj=0x41e978f0 self=0x5ad77398 
    | sysTid=14040 nice=0 sched=0/0 cgrp=[no-cpu-subsys] handle=1570148360 
    | schedstat=(1953124 6256104 5) utm=0 stm=0 core=0 
    at java.lang.Object.wait(Native Method) 
    - waiting on <0x41e57ad0> (a java.lang.VMThread) held by tid=13 (pool-2-thread-1) 
    at java.lang.Thread.parkFor(Thread.java:1231) 
    at sun.misc.Unsafe.park(Unsafe.java:323) 
    at java.util.concurrent.locks.LockSupport.park(LockSupport.java:157) 
    at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2022) 
    at java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:413) 
    at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1009) 
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1069) 
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:569) 
    at java.lang.Thread.run(Thread.java:856) 

"measurement-1" prio=5 tid=12 WAIT 
    | group="main" sCount=1 dsCount=0 obj=0x41e8b838 self=0x5b694310 
    | sysTid=14038 nice=10 sched=0/0 cgrp=[no-cpu-subsys] handle=1533839352 
    | schedstat=(43182372 116882325 183) utm=4 stm=0 core=1 
    at java.lang.Object.wait(Native Method) 
    - waiting on <0x41e8b910> (a java.lang.VMThread) held by tid=12 (measurement-1) 
    at java.lang.Thread.parkFor(Thread.java:1231) 
    at sun.misc.Unsafe.park(Unsafe.java:323) 
    at java.util.concurrent.locks.LockSupport.park(LockSupport.java:157) 
    at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2022) 
    at java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:413) 
    at com.google.android.gms.common.zza.zzmh((null):-1) 
    at com.google.android.gms.ads.identifier.AdvertisingIdClient.zza((null):-1) 
    at com.google.android.gms.ads.identifier.AdvertisingIdClient.zzb((null):-1) 
    at com.google.android.gms.ads.identifier.AdvertisingIdClient.getAdvertisingIdInfo((null):-1) 
    at com.google.android.gms.analytics.internal.zza.zzhE((null):-1) 
    at com.google.android.gms.analytics.internal.zza.zzhD((null):-1) 
    at com.google.android.gms.analytics.internal.zza.zzhy((null):-1) 
    at com.google.android.gms.analytics.Tracker$1.run((null):-1) 
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:442) 
    at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:305) 
    at java.util.concurrent.FutureTask.run(FutureTask.java:137) 
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1076) 
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:569) 
    at java.lang.Thread.run(Thread.java:856) 
    at com.google.android.gms.internal.zzns$zzc.run((null):-1) 

"Binder_3" prio=5 tid=11 NATIVE 
    | group="main" sCount=1 dsCount=0 obj=0x41e24788 self=0x58dec838 
    | sysTid=14034 nice=0 sched=0/0 cgrp=[no-cpu-subsys] handle=1491007920 
    | schedstat=(1373292 549317 4) utm=0 stm=0 core=1 
    #00 pc 0000cb70 /system/lib/libc.so (__ioctl+8) 
    #01 pc 00027e9d /system/lib/libc.so (ioctl+16) 
    #02 pc 00016bfd /system/lib/libbinder.so (android::IPCThreadState::talkWithDriver(bool)+124) 
    #03 pc 000173af /system/lib/libbinder.so (android::IPCThreadState::joinThreadPool(bool)+154) 
    #04 pc 0001b171 /system/lib/libbinder.so 
    #05 pc 0001104f /system/lib/libutils.so (android::Thread::_threadLoop(void*)+114) 
    #06 pc 0004b44b /system/lib/libandroid_runtime.so (android::AndroidRuntime::javaThreadShell(void*)+66) 
    #07 pc 00010bb5 /system/lib/libutils.so 
    #08 pc 00012d70 /system/lib/libc.so (__thread_entry+48) 
    #09 pc 000124c8 /system/lib/libc.so (pthread_create+172) 
    at dalvik.system.NativeStart.run(Native Method) 

"Binder_2" prio=5 tid=10 NATIVE 
    | group="main" sCount=1 dsCount=0 obj=0x41e246c8 self=0x58def358 
    | sysTid=14033 nice=0 sched=0/0 cgrp=[no-cpu-subsys] handle=1491006064 
    | schedstat=(1342774 4394532 6) utm=0 stm=0 core=1 
    #00 pc 0000cb70 /system/lib/libc.so (__ioctl+8) 
    #01 pc 00027e9d /system/lib/libc.so (ioctl+16) 
    #02 pc 00016bfd /system/lib/libbinder.so (android::IPCThreadState::talkWithDriver(bool)+124) 
    #03 pc 000173af /system/lib/libbinder.so (android::IPCThreadState::joinThreadPool(bool)+154) 
    #04 pc 0001b171 /system/lib/libbinder.so 
    #05 pc 0001104f /system/lib/libutils.so (android::Thread::_threadLoop(void*)+114) 
    #06 pc 0004b44b /system/lib/libandroid_runtime.so (android::AndroidRuntime::javaThreadShell(void*)+66) 
    #07 pc 00010bb5 /system/lib/libutils.so 
    #08 pc 00012d70 /system/lib/libc.so (__thread_entry+48) 
    #09 pc 000124c8 /system/lib/libc.so (pthread_create+172) 
    at dalvik.system.NativeStart.run(Native Method) 

"Binder_1" prio=5 tid=9 NATIVE 
    | group="main" sCount=1 dsCount=0 obj=0x41e23578 self=0x58deec18 
    | sysTid=14032 nice=0 sched=0/0 cgrp=[no-cpu-subsys] handle=1533592384 
    | schedstat=(3631592 20294190 10) utm=0 stm=0 core=0 
    #00 pc 0000cb70 /system/lib/libc.so (__ioctl+8) 
    #01 pc 00027e9d /system/lib/libc.so (ioctl+16) 
    #02 pc 00016bfd /system/lib/libbinder.so (android::IPCThreadState::talkWithDriver(bool)+124) 
    #03 pc 000173af /system/lib/libbinder.so (android::IPCThreadState::joinThreadPool(bool)+154) 
    #04 pc 0001b171 /system/lib/libbinder.so 
    #05 pc 0001104f /system/lib/libutils.so (android::Thread::_threadLoop(void*)+114) 
    #06 pc 0004b44b /system/lib/libandroid_runtime.so (android::AndroidRuntime::javaThreadShell(void*)+66) 
    #07 pc 00010bb5 /system/lib/libutils.so 
    #08 pc 00012d70 /system/lib/libc.so (__thread_entry+48) 
    #09 pc 000124c8 /system/lib/libc.so (pthread_create+172) 
    at dalvik.system.NativeStart.run(Native Method) 

"FinalizerWatchdogDaemon" daemon prio=5 tid=8 WAIT 
    | group="system" sCount=1 dsCount=0 obj=0x41e1f2a0 self=0x5b6967f0 
    | sysTid=14029 nice=0 sched=0/0 cgrp=[no-cpu-subsys] handle=1533593200 
    | schedstat=(213624 610351 4) utm=0 stm=0 core=0 
    at java.lang.Object.wait(Native Method) 
    - waiting on <0x4145f170> (a java.lang.Daemons$FinalizerWatchdogDaemon) 
    at java.lang.Object.wait(Object.java:364) 
    at java.lang.Daemons$FinalizerWatchdogDaemon.run(Daemons.java:214) 
    at java.lang.Thread.run(Thread.java:856) 

"FinalizerDaemon" daemon prio=5 tid=7 WAIT 
    | group="system" sCount=1 dsCount=0 obj=0x41e1f0f0 self=0x5b68b650 
    | sysTid=14028 nice=0 sched=0/0 cgrp=[no-cpu-subsys] handle=1093549952 
    | schedstat=(762939 305176 4) utm=0 stm=0 core=0 
    at java.lang.Object.wait(Native Method) 
    - waiting on <0x4144d5d0> (a java.lang.ref.ReferenceQueue) 
    at java.lang.Object.wait(Object.java:401) 
    at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:102) 
    at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:73) 
    at java.lang.Daemons$FinalizerDaemon.run(Daemons.java:169) 
    at java.lang.Thread.run(Thread.java:856) 

"ReferenceQueueDaemon" daemon prio=5 tid=6 WAIT 
    | group="system" sCount=1 dsCount=0 obj=0x41e1ef88 self=0x5ad55b70 
    | sysTid=14027 nice=0 sched=0/0 cgrp=[no-cpu-subsys] handle=1094096120 
    | schedstat=(488280 0 8) utm=0 stm=0 core=1 
    at java.lang.Object.wait(Native Method) 
    - waiting on <0x4144d4f8> 
    at java.lang.Object.wait(Object.java:364) 
    at java.lang.Daemons$ReferenceQueueDaemon.run(Daemons.java:129) 
    at java.lang.Thread.run(Thread.java:856) 

"Compiler" daemon prio=5 tid=5 VMWAIT 
    | group="system" sCount=1 dsCount=0 obj=0x41e1ee98 self=0x41353928 
    | sysTid=14026 nice=0 sched=0/0 cgrp=[no-cpu-subsys] handle=1523974648 
    | schedstat=(2044679 335693 3) utm=0 stm=0 core=0 
    #00 pc 0000dc80 /system/lib/libc.so (__futex_syscall3+8) 
    #01 pc 00012db4 /system/lib/libc.so (__pthread_cond_timedwait_relative+48) 
    #02 pc 00012e10 /system/lib/libc.so (__pthread_cond_timedwait+60) 
    #03 pc 0006f915 /system/lib/libdvm.so 
    #04 pc 00053b7f /system/lib/libdvm.so 
    #05 pc 00012d70 /system/lib/libc.so (__thread_entry+48) 
    #06 pc 000124c8 /system/lib/libc.so (pthread_create+172) 
    at dalvik.system.NativeStart.run(Native Method) 

"JDWP" daemon prio=5 tid=4 VMWAIT 
    | group="system" sCount=1 dsCount=0 obj=0x41e1edb0 self=0x5b68a4d8 
    | sysTid=14025 nice=0 sched=0/0 cgrp=[no-cpu-subsys] handle=1479479016 
    | schedstat=(18951417 6988525 49) utm=1 stm=0 core=0 
    #00 pc 0000cc98 /system/lib/libc.so (select+20) 
    #01 pc 00060737 /system/lib/libdvm.so 
    #02 pc 000632c1 /system/lib/libdvm.so 
    #03 pc 00053b7f /system/lib/libdvm.so 
    #04 pc 00012d70 /system/lib/libc.so (__thread_entry+48) 
    #05 pc 000124c8 /system/lib/libc.so (pthread_create+172) 
    at dalvik.system.NativeStart.run(Native Method) 

"Signal Catcher" daemon prio=5 tid=3 RUNNABLE 
    | group="system" sCount=0 dsCount=0 obj=0x41e1ecb8 self=0x41368f10 
    | sysTid=14023 nice=0 sched=0/0 cgrp=[no-cpu-subsys] handle=1523976200 
    | schedstat=(22277832 1953124 11) utm=1 stm=1 core=1 
    at dalvik.system.NativeStart.run(Native Method) 

"GC" daemon prio=5 tid=2 VMWAIT 
    | group="system" sCount=1 dsCount=0 obj=0x41e1ebd8 self=0x41367930 
    | sysTid=14021 nice=0 sched=0/0 cgrp=[no-cpu-subsys] handle=1479362424 
    | schedstat=(63446045 39611816 26) utm=6 stm=0 core=1 
    #00 pc 0000dc80 /system/lib/libc.so (__futex_syscall3+8) 
    #01 pc 00012db4 /system/lib/libc.so (__pthread_cond_timedwait_relative+48) 
    #02 pc 00012e10 /system/lib/libc.so (__pthread_cond_timedwait+60) 
    #03 pc 0006e64b /system/lib/libdvm.so 
    #04 pc 00053b7f /system/lib/libdvm.so 
    #05 pc 00012d70 /system/lib/libc.so (__thread_entry+48) 
    #06 pc 000124c8 /system/lib/libc.so (pthread_create+172) 
    at dalvik.system.NativeStart.run(Native Method) 

----- end 14019 ----- 

Qualche idea?

risposta

4

Ho lo stesso problema.

sto usando com.google.android.gms:play-services:7.5.0

L'unica "soluzione" che ho trovato finora è quello di disattivare la funzionalità di reporting delle eccezioni sul tracker:

applicationTracker.enableExceptionReporting(false);

come sembra, Google Analytics provoca un deadlock quando si tenta di segnalare un'eccezione non rilevata.

Dopo aver disattivato la gestione delle eccezioni, l'eccezione sottostante verrà a galla e crash la vostra applicazione, ma almeno si poteva identificare e risolvere il problema ...

Spero che questo aiuti fino a quando Google risolverà questo problema.