繁体   English   中英

谷歌分析-classcasexception

[英]google analytics- classcasexception

我是Android的新手,请尝试在我的项目中实现google analytics(分析),该项目在以下代码集中显示classcastexception:

 Tracker t = ((AnalyticsHelper) MainActivity.this.getApplication()).getTracker(
            TrackerName.APP_TRACKER);

这是我的AnalyticsHelper类:

public class AnalyticsHelper extends Application {


    // The following line should be changed to include the correct property id.
    private static final String PROPERTY_ID = "UA-xxxxxxxx-x"; // My Property id.

    public static int GENERAL_TRACKER = 0;

    public enum TrackerName {
        APP_TRACKER, // Tracker used only in this app.
        GLOBAL_TRACKER, // Tracker used by all the apps from a company. eg: roll-up tracking.
        ECOMMERCE_TRACKER, // Tracker used by all ecommerce transactions from a company.
    }

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

    public AnalyticsHelper()
    {
        super();
    }

    synchronized Tracker getTracker(TrackerName trackerId) {
        if (!mTrackers.containsKey(trackerId)) {

            GoogleAnalytics analytics = GoogleAnalytics.getInstance(this);
            analytics.getLogger().setLogLevel(LogLevel.VERBOSE);
            Tracker t = null;
            if(trackerId==TrackerName.APP_TRACKER){
                t= analytics.getTracker(PROPERTY_ID);
            }
                 mTrackers.put(trackerId, t);
                }
        return mTrackers.get(trackerId);
    }

我在libs下都包含了两个jar文件(Google Play服务和Google Analytics Services),而且清单文件中也提到了这样的内容:

<activity
            android:name="com.xxxx.xxxx.AnalyticsHelper"
            android:configChanges="screenSize"

            android:screenOrientation="sensorPortrait" >
        </activity>

log_cat:

java.lang.RuntimeException: Unable to start activity ComponentInfo{com.xxxx.xxxx/com.xxxx.xxxx.MainActivity}: java.lang.ClassCastException: android.app.Application cannot be cast to com.xxxx.xxxx.AnalyticsHelper

出了什么问题我想念什么..请事先帮助谢谢

删除( AnalyticsHelper不是活动,而是自定义应用程序类)

<activity
    android:name="com.xxxx.xxxx.AnalyticsHelper"
    android:configChanges="screenSize"
    android:screenOrientation="sensorPortrait" >
</activity>

并像这样将上下文添加到应用程序标签

<application
    android:name="com.xxxx.xxxx.AnalyticsHelper"
    android:icon="@drawable/icon"
    android:label="@string/app_name">

您只能通过此方法获取Tracker实例,而无需编写那么长的代码

Tracker t = ((AnalyticsHelper)getApplicationContext()).getTracker(TrackerName.APP_TRACKER);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM