Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Android GoogleAnalytics getInstance

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'
}
like image 963
Ivan Vazhnov Avatar asked Dec 11 '14 12:12

Ivan Vazhnov


4 Answers

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

like image 62
Kirill Shalnov Avatar answered Oct 21 '22 10:10

Kirill Shalnov


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"

like image 27
Maor Hadad Avatar answered Oct 21 '22 09:10

Maor Hadad


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
like image 3
djabi Avatar answered Oct 21 '22 09:10

djabi


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'
}
like image 2
CookieMonster Avatar answered Oct 21 '22 10:10

CookieMonster