Android GoogleAnalytics getInstance

做~自己de王妃 提交于 2019-11-27 02:05:18

问题


in Application class, in create method I call GoogleAnalytics.getInstance(this) and application just freezes...on any device Worked fine with google play services 6.1, now it's 6.5 and I have no idea what could cause this.... Any ideas?

public class BaseApplication extends Application {

    private static Tracker mTracker;
    private MyProfile mMyProfile;

    public BaseApplication() {
        super();
    }

    private void initTracker() {
        if (mTracker == null) {
            GoogleAnalytics analytics = GoogleAnalytics.getInstance(this);
            mTracker = analytics.newTracker(R.xml.global_tracker);
            mTracker.enableAdvertisingIdCollection(true);
        }
    }

`...

Gradle 
dependencies {
    compile project(':IMFramework')
    compile 'com.android.support:appcompat-v7:21.0.3'
    compile 'com.google.android.gms:play-services-base:6.5.87'
    compile 'com.google.android.gms:play-services-maps:6.5.87'
}

回答1:


Worked fine with google play services 6.1

Good, I did rollback to 6.1.+ I think it some internal error that will be fixed in an next update.

Upd

It fixed in 7.0




回答2:


removing this line from the manifest solved the problem for me:

meta-data android:name="com.google.android.gms.analytics.globalConfigResource" android:resource="@xml/global_tracker"




回答3:


GoogleAnalytics.getInstance() deadlocks while trying to parse the xml tracker definition.

The issue is fixed in Google Play Services 7.0 that was released March 19, 2015. Upgrading to 7.0 will fix the deadlock. http://developer.android.com/google/play-services/index.html

If you must use Play Services 6.5, you can workaround the deadlock by initializing the tracker from code instead of xml resource:

public static final String TRACKER_ID="UA-xxx";
...
mTracker = analytics.newTracker(TRACKER_ID);
// Configure mTracker using the tracker provided methods



回答4:


I got this error:

java.lang.NoSuchMethodError: No static method zzz(Ljava/lang/Object;)Ljava/lang/Object; in class Lcom/google/android/gms/common/internal/zzaa; or its super classes (declaration of 'com.google.android.gms.common.internal.zzaa' appears in /data/data/com.crave.iapdemo/files/instant-run/dex/slice-com.google.android.gms-play-services-basement-10.0.1_b9da1447b99cc6cbc2fa601fb84d0418780bfa55-classes.dex)
                                                                       at com.google.android.gms.analytics.internal.zzf.zzX(Unknown Source)
                                                                       at com.google.android.gms.analytics.GoogleAnalytics.getInstance(Unknown Source)

in this line:

GoogleAnalytics.getInstance(this)

The solution for me was upgrading this:

dependencies {
    // play services
    compile 'com.google.android.gms:play-services-gcm:9.0.0'
    compile 'com.google.android.gms:play-services-analytics:9.0.0'
}

into:

dependencies {
    // play services
    compile 'com.google.android.gms:play-services-gcm:10.0.1'
    compile 'com.google.android.gms:play-services-analytics:10.0.1'
}



回答5:


Just in case the other fixes mentioned here don't work for you, here's what worked for me:

In build.gradle I changed...

compile 'com.google.android.gms:play-services:6.5.87'

...to...

compile 'com.google.android.gms:play-services-base:6.5.87'

...and it stopped hanging. I don't know why.



来源:https://stackoverflow.com/questions/27423218/android-googleanalytics-getinstance

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!