2014-07-25 40 views
9

當我試圖讓我的行爲跟蹤它顯示錯誤 - 這方法取消定義「getactivity()」在谷歌分析V4Android的谷歌分析的積分誤差

// Get tracker. 
    Tracker t = ((AnalyticsSampleApp) getActivity().getApplication()) 
      .getTracker(TrackerName.APP_TRACKER); 
+0

如果您的呼叫從活動驗證碼,然後刪除getActivity() 如果您從片段調用它,然後把它 –

+0

THX,它的工作原理,但它顯示錯誤java.lang.ClassCastException :android.app.Application無法轉換爲com.example.analys.AnalyticsSampleApp – user3736720

+0

使用此 跟蹤器t =((AnalyticsSampleApp)getApplication()) .getTracker(TrackerName.APP_TRACKER); – rup35h

回答

23

如果您還沒有這樣做已經創建了一個類MyApplication爲您的應用程序擴展了Application,並確保將它添加到您的清單中,如下所示(此處重要的屬性是android:name,爲了清晰起見,我已經刪除了其他xml屬性)。

<application 
    android:name="mypackagename.MyApplication" 
    ... > 

然後,在你所有MyApplication類,創建一個方法瞭解getTracker按照谷歌Analytics(分析)v4的文檔https://developers.google.com/analytics/devguides/collection/android/v4/#tracking-methods

然後,使用

Tracker t = ((MyApplication) getApplication()) 
     .getTracker(TrackerName.APP_TRACKER); 
+0

請檢查主文件 – user3736720

+0

請參閱我的編輯,應用程序 – FreewheelNat

+0

的清單提取很棒!谷歌分析開發者指南中沒有提到這一點。謝謝! – Mulgard

0

我也遇到這個問題了一會兒回來。爲了解決這個問題,我如上所述,刪除了getActivity()以及在manifest中添加.MyApplication到android:name。不過,我需要在TrackerName之前添加MyApplication,如下所示。

Tracker t = ((MyApplication) getApplication()).getTracker(MyApplication.TrackerName.APP_TRACKER); 

希望這有助於