Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/191.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android getTracker()为Google Analytics返回NULL_Android_Google Analytics - Fatal编程技术网

Android getTracker()为Google Analytics返回NULL

Android getTracker()为Google Analytics返回NULL,android,google-analytics,Android,Google Analytics,我们的代码现在已经在现场运行了9个多月,没有任何问题,但已经开始收到应用程序随机崩溃的报告(报告表明它只在安卓4.1和4.2上运行,无法很好地复制)。代码关注的是一个小部件,它从我们的API获取数据列表(图像URL和文本),并在桌面上的旋转小部件中显示。这些小部件运行下面的RemoteViewsService,在onDataSetChanged()上跟踪显示的内容 //// widget service class WidgetRemoteViewsService extends RemoteV

我们的代码现在已经在现场运行了9个多月,没有任何问题,但已经开始收到应用程序随机崩溃的报告(报告表明它只在安卓4.1和4.2上运行,无法很好地复制)。代码关注的是一个小部件,它从我们的API获取数据列表(图像URL和文本),并在桌面上的旋转小部件中显示。这些小部件运行下面的RemoteViewsService,在onDataSetChanged()上跟踪显示的内容

//// widget service
class WidgetRemoteViewsService extends RemoteViewsService implements RemoteViewsFactory
{

... (other methods)

@Override
public void onDataSetChanged()
{
    ... (get data, do stuff)
    for ( Campaign campaign : campaigns )
    {
      GoogleAnalyticsTracker.trackEvent(getApplicationContext(), campaign.getGuid());
    }
}

}

//////// tracking code
protected static void trackEvent(Context context, String campaignGuid)
{
  EasyTracker easyTracker = EasyTracker.getInstance();
  easyTracker.setContext(context);
  Tracker tracker = EasyTracker.getTracker();  // getTracker returns null
  if ( StringUtils.isNotBlank(campaignGuid) )
  {
    tracker.setCustomDimension(CAMPAIGN_GUID_DIMENSION_ID, campaignGuid);
  }
  ... (set other tracking data)
  tracker.trackEvent(category, action, label, null);    
  easyTracker.dispatch();
}
我们的analytics.xml文件:

<?xml version="1.0" encoding="utf-8"?>
<resources xmlns:tools="https://schemas.android.com/tools" tools:ignore="TypographyDashes">

<string name="ga_trackingId">UA-9999999-33</string>

<bool name="ga_debug">false</bool>
<bool name="ga_autoActivityTracking">false</bool>
<bool name="ga_reportUncaughtExceptions">true</bool>
<integer name="ga_dispatchPeriod">300</integer>

</resources>

该错误很少发生,而且似乎是随机发生的(当平板电脑解锁、打开/关闭应用程序等),并且日志中没有其他迹象表明是任何原因造成的。我们正在运行Google Analytics JAR的v2。

我也会在开发控制台上收到随机崩溃报告,一两个月后就会收到一份,奇怪的是,这些崩溃没有在Crashlytics中报告,当然也没有在Google Analytics中报告。我得到这些:
原因:java.lang.IllegalStateException:在调用getTracker()之前,必须调用EasyTracker.getInstance().setContext(上下文)或startActivity(活动)。我不知道该怎么办。
11-14 13:08:37.651: W/GAV2(7863): Thread[Binder_2,5,main]: Connection to service failed 1
11-14 13:08:37.651: W/ActivityManager(259): Unable to start service Intent { act=com.google.android.gms.analytics.service.START (has extras) }: not found
11-14 13:08:37.691: W/GAV2(7863): Thread[Binder_2,5,main]: Need to call initialize() and be in fallback mode to start dispatch.
11-14 13:08:37.691: E/AndroidRuntime(7863): FATAL EXCEPTION: Binder_1
11-14 13:08:37.691: E/AndroidRuntime(7863): java.lang.NullPointerException
11-14 13:08:37.691: E/AndroidRuntime(7863):     at com.fake.tracking.GoogleAnalyticsTracker.trackEvent(GoogleAnalyticsTracker.java:58)