簡體   English   中英

我的Android應用中的Google Analytics(分析)v4投放錯誤

[英]Google Analytics v4 Cast Error in my android app

編輯:我修復了錯誤。 但是我仍然無法在Google Analytics(分析)窗口中看到實時訪問者。 我檢查了我的跟蹤ID的三倍。 沒錯,代碼中沒有錯誤。 但是為什么我不能吸引我的訪客呢? 至少1位訪客應位於實時訪客區域。 因為我在我的應用程序上。

我想在我的應用程序中使用Google Analytics v4。 根據谷歌文檔添加了一個類。

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

如果我的方法全都錯了,您能給點建議嗎?

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM