[英]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.