2014-11-26 2 views
1

EDIT: исправлена ​​ошибка. Но все же я не вижу посетителей в режиме реального времени в окне Google Analytics. Я проверяю три раза идентификатор отслеживания. Это правильно, ошибки в коде нет. Но почему я не могу подойти к посетителям? Мин 1 посетитель должен быть в режиме реального времени. Потому что я нахожусь в своем приложении.Google Analytics v4 Ошибка в приложении для моего Android-приложения

Я хочу использовать Google Analytics v4 для своего приложения. Я добавляю класс according в google doc.

GoogleAnal.java

public class GoogleAnal extends Application { 
    public GoogleAnal() { 
     super(); 
     } 
    public enum TrackerName { 
     APP_TRACKER, // Tracker used only in this app. 
    } 

    HashMap<TrackerName, Tracker> mTrackers = new HashMap<TrackerName, Tracker>(); 


    synchronized Tracker getTracker(TrackerName trackerId) { 
     if (!mTrackers.containsKey(trackerId)) { 
      GoogleAnalytics analytics = GoogleAnalytics.getInstance(this); 
      if(trackerId == TrackerName.APP_TRACKER){ 
       Tracker t = analytics.newTracker(R.xml.app_tracker); 
       mTrackers.put(trackerId, t); 
      }   
     } 
     return mTrackers.get(trackerId); 
    } 

} 

MainActivity.java

protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
.... 
.... 
.... 
//Below line gives Error: 
//11-26 09:52:35.005: E/AndroidRuntime(2239): Caused by: java.lang.ClassCastException: android.app.Application cannot be cast to com.xxx.helloworld.GoogleAnal 

((GoogleAnal) getApplication()).getTracker(GoogleAnal.TrackerName.APP_TRACKER); 

} 

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

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

Где я делаю неправильно? Что я должен написать вместо ((GoogleAnal) getApplication()).getTracker(GoogleAnal.TrackerName.APP_TRACKER);

Если мой способ не так, можете ли вы дать некоторые предложения?

+0

Вы можете оставить свой LogCat? –

ответ

2

ВАРИАНТ 1: Вы добавили GoogleAnal в свой манифест?

<application 
    android:name="com.xxx.helloworld.GoogleAnal" 
    ... 

ВАРИАНТ 2: это мой метод getTracker внутри мое Применение:

synchronized Tracker getTracker(TrackerName trackerId) { 

    if (!mTrackers.containsKey(trackerId)) { 

     GoogleAnalytics analytics = GoogleAnalytics.getInstance(this); 
     analytics.setLocalDispatchPeriod(15); 
     analytics.getLogger().setLogLevel(Logger.LogLevel.VERBOSE); 
     Tracker t = analytics.newTracker(PROPERTY_ID); 
     t.setAppName(getResources().getString(R.string.app_name)); 
     t.enableAdvertisingIdCollection(true); 
     t.enableAutoActivityTracking(true); 
     t.enableExceptionReporting(true); 
     mTrackers.put(trackerId, t); 
    } 
    return mTrackers.get(trackerId); 
} 
+0

Да, но все еще не работает – hakiko

+0

@hakiko похоже, что проблема не связана с Google Analytics. Похоже, что ошибка указывает, что GoogleAnal не может быть передан в приложение. Попробуйте позвонить ((GoogleAnal) getApplication()), чтобы узнать, связана ли ваша проблема с Google Analytics или нет. –

+0

Я исправил ошибки, открытие приложения нормально, но в режиме реального времени в аналитике нет действий. Тем не менее «0» посетитель – hakiko

Смежные вопросы