2016-04-01 43 views
0

Android Uygulamamda Analytics'i kullanmakta sorun yaşıyorum.ANDROID uygulamasında Analytics'i başlatma sorunları

Ben onCreate içinde MainActivity (bunu yaparsanız, bunu başlatmak için nasıl bilmiyorum

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); 
    } 
} 

Android Studio tarafından oluşturulan varsayılan sınıfı) cihazı alıyorum döner her zaman kullanıyorum bir istisna "Analitik izleyicileri başlatmak için ekstra arama"

Sorunu nasıl düzeltebilirim?

cevap

0

Bunu, yalnızca uygulama başlatıldığında çağrılan Uygulama sınıfında başlatabilirsiniz.

Sadece bir sınıf oluşturun, Uygulamayı genişletin ve analitiğinizi onCreate() üzerinde başlatın.

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

Ya v4 docs numunesi gibi, uygulama sınıfının kendisinde GoogleAnalytics örneğini tutmak

:

/** 
* 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

o pürüzsüz – Thomas

+0

Yüksek, işleri, teşekkür ederiz! Cevap olarak kabul ederseniz minnettar olurum. – petrusgomes

+0

@petrusgomes Aynı şeyi yaptım ama yine de analitik gösterileri ** Hits Yok **. Analitiğin doğru yapılandırılıp yapılandırılmadığını test etmenin bir yolu var mı? –