Служба AnalyticsService не зарегистрирована в манифесте приложения - ошибка


85

Я пытаюсь внедрить службу аналитики Google в приложение для Android, используя следующую документацию, предоставленную в SDK:

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

Я не вижу никакой информации на сайте администратора аналитики.

Пока приложение работает, я вижу следующее сообщение отладки

«Служба AnalyticsService не зарегистрирована в манифесте приложения. Обращения могут быть ненадежными. Инструкции см. На странице https://developers.google.com/analytics/devguides/collection/android/v4/ ».

Не могли бы вы подсказать мне, как зарегистрировать эту услугу?


Проверьте, есть ли у вас инициализированная аналитика в классе приложения или также и в основной целевой активности. Рекомендую удалить код глобального трекера (XML).
Манан Шарма

Ответы:


178

Я не уверен, что действия по этому предупреждению решат вашу проблему (т. Е. Отсутствие информации на сайте администратора Google Analytics).

В любом случае, вот что вам следует добавить в 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.


9
Я решил это с помощью этого метода. Однако новичку следует обратить внимание на то, что эти коды, возможно, необходимо добавить в тег «application» =)
yi2ng2

57
Настоящий вопрос в том, почему их нет здесь: developers.google.com/analytics/devguides/collection/android/v4 ?
Бадди

6
@EnesBattal, возможно, потому, что они требуются только на устройствах, не имеющих сервисов Google Play. Но я тоже считаю, что об этом следует упомянуть в этих документах.
aandis

2
Я добавил их в свой манифест, и теперь я больше не получаю предупреждения в LogCat, но когда я включаю отладку для GoogleAnalytics, я все равно получаю их в терминале? Команды, которые я использовал для включения отладки в Терминале: «adb shell setprop log.tag.GAv4 DEBUG» и «adb logcat -s GAv4»
Mehlyfication

@zack, если приложение отправляется в Play Store, это означает, что вы не знаете, на какое устройство будет установлено приложение, поэтому подразумевается, что эти службы и приемники должны быть добавлены в манифест. Конечно, в моем случае у меня есть несколько устройств, на которых уже установлены сервисы Play, и это был единственный способ избавиться от предупреждений в LogCat
Phileo99

26

добавить это в манифест

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

какой результат нужно отобразить в консоли, чтобы убедиться, что она заработала?
deadfish


0

У меня была похожая проблема - сообщение об AnalyticsService выглядит так, будто на вашем устройстве нет сервисов Google, но для меня это было неправдой. Однако я понял, что не могу быть уверен, что этот журнал был вызван из моего приложения - журнал выглядел так:, 10173-10192/? V/GAV4поэтому имя пакета было скрыто.

Чтобы просмотреть журналы из Google Analytics, вы должны изменить уровень журнала на подробный:

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

Это поможет вам проанализировать, в чем причина ваших проблем.


4
GoogleAnalytics.getInstance (это) .getLogger (). SetLogLevel (Logger.LogLevel.VERBOSE); не рекомендуется. Используйте вместо этого «adb shell setprop log.tag.GAv4 DEBUG; adb logcat -s GAv4»
aselims

Вы используете устаревшие методы.
Игорь Ганапольский

5
@IgorGanapolsky, это не устарело в июне 2015 года,
Кшиштоф Скшинецкий
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.