2016-04-01 10 views
0

Ich habe Probleme, Analytics in meiner Android App zu verwenden.Probleme bei der Initialisierung von Analytics in der ANDROID-App

Ich verwende die Standardklasse, die von Android Studio

import android.content.Context; 

import com.google.android.gms.analytics.GoogleAnalytics; 
import com.google.android.gms.analytics.Tracker; 

import java.util.HashMap; 
import java.util.Map; 

/** 
* A collection of Google Analytics trackers. Fetch the tracker you need using 
* {@code AnalyticsTrackers.getInstance().get(...)} 
* <p/> 
* This code was generated by Android Studio but can be safely modified by 
* hand at this point. 
* <p/> 
* TODO: Call {@link #initialize(Context)} from an entry point in your app 
* before using this! 
*/ 
public final class AnalyticsTrackers { 

    public enum Target { 
    APP, 
    // Add more trackers here if you need, and update the code in #get(Target) below 
    } 

    private static AnalyticsTrackers sInstance; 

    public static synchronized void initialize(Context context) { 
    if (sInstance != null) { 
     throw new IllegalStateException("Extra call to initialize analytics trackers"); 
    } 

    sInstance = new AnalyticsTrackers(context); 
    } 

    public static synchronized AnalyticsTrackers getInstance() { 
    if (sInstance == null) { 
     throw new IllegalStateException("Call initialize() before getInstance()"); 
    } 

    return sInstance; 
    } 

    private final Map<Target, Tracker> mTrackers = new HashMap<Target, Tracker>(); 
    private final Context mContext; 

    /** 
    * Don't instantiate directly - use {@link #getInstance()} instead. 
    */ 
    private AnalyticsTrackers(Context context) { 
    mContext = context.getApplicationContext(); 
    } 

    public synchronized Tracker get(Target target) { 
    if (!mTrackers.containsKey(target)) { 
     Tracker tracker; 
     switch (target) { 
     case APP: 
      tracker = GoogleAnalytics.getInstance(mContext).newTracker(R.xml.app_tracker); 
      tracker.enableAdvertisingIdCollection(true); 
      break; 
     default: 
      throw new IllegalArgumentException("Unhandled analytics target " + target); 
     } 
     mTrackers.put(target, tracker); 
    } 

    return mTrackers.get(target); 
    } 
} 

Ich weiß nicht, wie es zu initialisieren, wenn ich es in der MainActivity in onCreate tun() jedes Mal das Gerät dreht ich eine Ausnahme "Extra Call to initialize analytics trackers"

Wie kann ich das Problem beheben?

Antwort

0

Sie können es für die Application-Klasse initialisieren, die nur aufgerufen wird, wenn die App gestartet wird.

Erstellen Sie einfach eine Klasse, erweitern Sie die Anwendung und initialisieren Sie Ihre Analysen für onCreate().

public class VivaApplication extends Application { 

    @Override 
    public void onCreate() { 
     super.onCreate(); 
     AnalyticsTrackers.initialize(this); 
    } 
} 

http://developer.android.com/intl/pt-br/reference/android/app/Application.html

Oder die Google Instanz auf der Anwendungsklasse halten sich, wie die v4 docs Beispiel:

/** 
* This is a subclass of {@link Application} used to provide shared objects for this app, such as 
* the {@link Tracker}. 
*/ 
public class AnalyticsApplication extends Application { 
    private Tracker mTracker; 

    /** 
    * Gets the default {@link Tracker} for this {@link Application}. 
    * @return tracker 
    */ 
    synchronized public Tracker getDefaultTracker() { 
     if (mTracker == null) { 
      GoogleAnalytics analytics =  GoogleAnalytics.getInstance(this); 
      // To enable debug logging use: adb shell setprop log.tag.GAv4 DEBUG 
      mTracker = analytics.newTracker(R.xml.global_tracker); 
     } 

     return mTracker; 
    } 
} 

https://developers.google.com/analytics/devguides/collection/android/v4/#application

+0

Vielen Dank, es glatt – Thomas

+0

Große funktioniert! Ich würde mich freuen, wenn Sie als Antwort akzeptieren könnten. – petrusgomes

+0

@petrusgomes Ich habe das gleiche getan, aber immer noch Analysen zeigt ** No Hits **. Kann ich testen, ob die Analytik richtig konfiguriert ist? –

Verwandte Themen