AnalyticsService n'est pas inscrit dans le manifeste de l'application - erreur


85

J'essaie de mettre en œuvre le service Google Analytics sur l'application Android à l'aide de la documentation suivante fournie dans sdk:

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

Je ne vois aucune information sur le site d'administration des analyses.

Pendant que l'application est en cours d'exécution, je vois le message de débogage suivant

"AnalyticsService n'est pas enregistré dans le manifeste de l'application. Il se peut que les appels ne soient pas diffusés de manière fiable. Consultez https://developers.google.com/analytics/devguides/collection/android/v4/ pour obtenir des instructions."

Pouvez-vous me suggérer comment enregistrer ce service?


Vérifiez si vous avez initialisé les analyses dans la classe d'application ou l'activité principale d'atterrissage également. Je recommande de supprimer le code de suivi global (XML).
Manan Sharma le

Réponses:


178

Je ne sais pas si le fait de donner suite à cet avertissement résoudra le problème que vous rencontrez (c'est-à-dire que vous ne voyez aucune information sur le site d'administration d'Analytics).

Quoi qu'il en soit, voici ce que vous devez ajouter à AndroidManifest.xml à l'intérieur de la balise d'application si vous souhaitez vous débarrasser de cet avertissement:

 <!-- 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" />

Vous n'êtes pas obligé d'ajouter tout cela, ajoutez simplement ce dont vous avez besoin. Dans votre cas, il vous suffit apparemment d'ajouter le AnalyticsServiceservice.

Source: https://developer.android.com/reference/com/google/android/gms/analytics/GoogleAnalytics.html


9
J'ai résolu cela grâce à cette méthode. Cependant, une chose à noter pour les débutants est que ces codes devront peut-être être ajoutés à l'intérieur de la balise "application" =)
yi2ng2

57
La vraie question est de savoir pourquoi ceux-ci ne sont pas présents ici: developer.google.com/analytics/devguides/collection/android/v4 ?
Buddy

6
@EnesBattal peut-être parce que ceux-ci ne sont requis que sur les appareils ne disposant pas de services Google Play. Mais je pense aussi qu'il devrait être mentionné dans ces documents.
aandis

2
Je les ai ajoutés à mon manifeste et maintenant je ne reçois plus l'avertissement dans LogCat, mais lorsque j'active le débogage pour GoogleAnalytics, je les reçois toujours dans le terminal? Les commandes que j'ai utilisées pour activer le débogage dans le terminal: "adb shell setprop log.tag.GAv4 DEBUG" et "adb logcat -s GAv4"
Mehlyfication

@zack, si l'application va sur le Play Store, cela signifie que vous ne savez pas sur quel appareil l'application sera installée, par conséquent, cela implique que ces services et récepteurs doivent être ajoutés au manifeste. Certes, dans mon cas, j'ai plusieurs appareils sur lesquels les services Play sont déjà installés, et c'était le seul moyen de se débarrasser des avertissements dans LogCat
Phileo99

26

ajouter ceci sur le manifeste

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

quel résultat dans la console doit être affiché pour être sûr que cela fonctionne?
deadfish


0

J'ai eu un problème assez similaire: le message sur AnalyticsService semble que votre appareil ne dispose pas des services Google, mais ce n'était pas le cas pour moi. Cependant, j'ai réalisé que je ne pouvais pas être sûr que ce journal avait été appelé à partir de mon application - le journal ressemblait à ça:, 10173-10192/? V/GAV4donc le nom du package était masqué.

Pour afficher les journaux de Google Analytics, vous devez modifier le niveau de journalisation en détaillé:

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

Cela vous aidera à analyser quelle est la cause de vos problèmes.


4
GoogleAnalytics.getInstance (this) .getLogger (). SetLogLevel (Logger.LogLevel.VERBOSE); est obsolète. Utilisez plutôt "adb shell setprop log.tag.GAv4 DEBUG; adb logcat -s GAv4" à la place
aselims

Vous utilisez des méthodes obsolètes.
IgorGanapolsky

5
@IgorGanapolsky il n'était pas obsolète en juin 15
Krzysztof Skrzynecki
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.