我正在使用EasyTracker谷歌分析库,我的应用程序有多项活动。 我希望每次在应用启动时跟踪事件设备模型和系统版本信息。
我的启动器活动的onCreate方法中的此代码
EasyTracker.getTracker().trackEvent("Others", "App launch", "The os version", 0);
与
崩溃06-15 21:24:30.898: WARN/dalvikvm(1203): threadid=8: thread exiting with uncaught exception (group=0x4001d800)
06-15 21:24:30.898: ERROR/AndroidRuntime(1203): FATAL EXCEPTION: TrackerThread
java.lang.NullPointerException
at com.google.android.apps.analytics.GoogleAnalyticsTracker.createEvent(Unknown Source)
at com.google.android.apps.analytics.GoogleAnalyticsTracker.trackEvent(Unknown Source)
at com.google.android.apps.analytics.easytracking.GoogleAnalyticsTrackerDelegateImpl.trackEvent(Unknown Source)
at com.google.android.apps.analytics.easytracking.EasyTracker$11.run(Unknown Source)
at com.google.android.apps.analytics.easytracking.EasyTracker$TrackerThread.run(Unknown Source)
06-15 21:24:30.918: WARN/ActivityManager(58): Force finishing activity com.mycompany.myapp/com.mycompany.activity.HomeActivity
我做错了什么?
答案 0 :(得分:5)
你得到一个NullPointerException,因为跟踪器是在基类TrackedActivity的onStart方法中初始化的,它发生在onCreate之后。 但是,TrackedActivity会自动跟踪活动的创建(trackPageView),所以通常在这里不需要trackEvent。您可以在活动的生命周期中在onStart和onStop之间的任何其他方法上成功调用trackEvent。
答案 1 :(得分:0)
请记住在activity.onCreate中添加以下代码:
EasyTracker.getInstance().setContext(this);
使用任何跟踪器功能之前。