按照这里的简单指南, https://developers.google.com/analytics/devguides/collection/android/v3/
当我运行我的应用程序时,我明白了,
10-28 18:01:17.973 27022-27069/com.foo.bar W/GAV3﹕ Thread[GAThread,5,main]: Service unavailable (code=1), will retry.
10-28 18:01:17.973 27022-27069/com.foo.bar I/GAV3﹕ Thread[GAThread,5,main]: No campaign data found.
10-28 18:01:17.973 525-865/system_process W/ActivityManager﹕ Unable to start service Intent { act=com.google.android.gms.analytics.service.START cmp=com.google.android.gms/.analytics.service.AnalyticsService (has extras) } U=0: not found
从调试开始,它试图启动一个不存在的服务。似乎我应该在我的清单中定义它,但指南没有说明这一点。
我已将analytics.xml
放在我的res / values文件夹中,
<?xml version="1.0" encoding="utf-8" ?>
<resources
xmlns:tools="https://schemas.android.com/tools"
tools:ignore="TypographyDashes">
<string name="ga_trackingId">UA-XXX-1</string>
<bool name="ga_autoActivityTracking">true</bool>
<bool name="ga_reportUncaughtExceptions">true</bool>
<integer name="ga_dispatchPeriod">1</integer>
<bool name="ga_debug">true</bool>
</resources>
由于指南很简单,我完全被这里难住了。如果它有任何区别(并且它不应该),我正在用android studio / gradle构建,并添加这样的依赖,
compile files('libs/libGoogleAnalyticsServices.jar')
编辑:有一个想法...这个设备不运行谷歌服务。 google analytics lib是否依赖于正在安装的Google服务APK?
答案 0 :(得分:14)
您现在可以忽略该警告。
来自Google移动应用分析论坛:
The SDK is simply attempting to connect to a global dispatch service, which is unavailable on your device. The hits are still being generated and sent to GA normally.
GA开发者网站将很快提供更多相关信息。
链接到论坛:https://groups.google.com/forum/#!forum/ga-mobile-app-analytics
答案 1 :(得分:1)
如果您使用的是分析版V3,则应删除
<bool name="ga_debug">true</bool>
因为ga_debug适用于v2
参阅:Google Analytics SDK for Android - EasyTracker Parameters
答案 2 :(得分:1)
此处存在相同问题,您可能忘记初始化跟踪器。
在GA3 site的“后续步骤”下,它指出“在测量任何数据之前,您必须通过提供上下文和Google Analytics媒体资源属性ID,通过GoogleAnalytics单例初始化至少一个跟踪器:”
只需将此代码插入主要活动'onCreate方法:
// Initialize a tracker using a Google Analytics property ID.
GoogleAnalytics.getInstance(this).getTracker("UA-XXXX-Y")
你认为他们会在他们的主页上提到这一点,但我想他们只是希望你对高级设置感到好奇。
答案 3 :(得分:0)
我认为你可以使用
GAServiceManager.getInstance().setLocalDispatchPeriod(10);
在这一行之后它似乎工作正常并发送事件