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

Я не впевнений, що дія за цим попередженням вирішить проблему, з якою ви стикаєтесь (тобто не бачите ніякої інформації на веб-сайті адміністратора 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"
Меліфікація

@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 (this) .getLogger (). SetLogLevel (Logger.LogLevel.VERBOSE); застаріло. Замість цього використовуйте "adb shell setprop log.tag.GAv4 DEBUG; adb logcat -s GAv4"
aselims

Ви використовуєте застарілі методи.
Ігор Ганапольський

5
@IgorGanapolsky це не було припинено в червні 15 року
Кшиштоф Скжинецький
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.