AnalyticsService未在应用清单中注册 – 错误

我正在尝试使用sdk中提供的以下文档来实现谷歌分析服务到android应用程序:

https://developers.google.com/analytics/devguides/collection/android/v4/

我无法在分析pipe理网站中看到任何信息。

当应用程序正在运行时,我看到下面的debugging消息

“AnalyticsService未在应用清单中注册,点击可能无法可靠传送。有关说明,请参阅https://developers.google.com/analytics/devguides/collection/android/v4/ 。

你能build议我如何注册这项服务?

我不知道这个警告是否会解决您遇到的问题(即在Google Analyticspipe理网站中没有看到任何信息)。

无论如何,这是你应该添加到应用程序标签内的AndroidManifest.xml如果你想摆脱这个警告:

<!-- Optionally, register AnalyticsReceiver and AnalyticsService to support background dispatching on non-Google Play devices --> <receiver android:name="com.google.android.gms.analytics.AnalyticsReceiver" android:enabled="true"> <intent-filter> <action android:name="com.google.android.gms.analytics.ANALYTICS_DISPATCH" /> </intent-filter> </receiver> <service android:name="com.google.android.gms.analytics.AnalyticsService" android:enabled="true" android:exported="false"/> <!-- Optionally, register CampaignTrackingReceiver and CampaignTrackingService to enable installation campaign reporting --> <receiver android:name="com.google.android.gms.analytics.CampaignTrackingReceiver" android:exported="true"> <intent-filter> <action android:name="com.android.vending.INSTALL_REFERRER" /> </intent-filter> </receiver> <service android:name="com.google.android.gms.analytics.CampaignTrackingService" /> 

你不需要添加所有这些,只需添加你所需要的。 在你的情况下,你显然只需要添加AnalyticsService服务。

资料来源: https : //developer.android.com/reference/com/google/android/gms/analytics/GoogleAnalytics.html

在清单上添加这个

  <service android:name="com.google.android.gms.analytics.AnalyticsService" android:enabled="true" android:exported="false"/> 

Karim很好地解释了这个问题,但是直到你给清单中的Wakelocking权限,它才会起作用。

 <uses-permission android:name="android.permission.WAKE_LOCK" /> 

Google v4调度参考。

我有非常类似的问题 – 关于AnalyticsService的消息看起来像您的设备没有Google服务,但这不是我的真实情况。 但是,我已经意识到,我不能确定这个日志是从我的应用程序调用 – 日志看起来像这样: 10173-10192/? V/GAV4 10173-10192/? V/GAV4 ,所以包名被隐藏了。

要查看来自Google Analytics的日志,您应该将日志级别更改为详细信息:

 GoogleAnalytics.getInstance(this).getLogger().setLogLevel(Logger.LogLevel.VERBOSE); 

这将帮助你分析,你的问题是什么原因。