AnalyticsService nicht im App-Manifest registriert - Fehler

85

Ich versuche, den Google Analytics-Dienst für die Android-App mithilfe der folgenden Dokumentation in SDK zu implementieren:

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

Ich kann keine Informationen auf der Analytics-Administrationsseite sehen.

Während die App ausgeführt wird, wird die folgende Debug-Meldung angezeigt

"AnalyticsService ist nicht im App-Manifest registriert. Treffer werden möglicherweise nicht zuverlässig übermittelt. Anweisungen finden Sie unter https://developers.google.com/analytics/devguides/collection/android/v4/ ."

Können Sie mir bitte vorschlagen, wie ich diesen Dienst registrieren soll?

CreativeManix
quelle
Überprüfen Sie, ob Sie die Analyse in der Anwendungsklasse oder auch in der primären Landeaktivität initialisiert haben. Ich empfehle, den XML-Code (Global Tracker) zu entfernen.
Manan Sharma

Antworten:

178

Ich bin nicht sicher, ob das Befolgen dieser Warnung das Problem löst, das Sie haben (dh keine Informationen auf der Analytics-Verwaltungssite sehen).

Wie auch immer, hier ist, was Sie AndroidManifest.xml innerhalb des Anwendungs-Tags hinzufügen sollten, wenn Sie diese Warnung entfernen möchten:

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

Sie müssen nicht alles hinzufügen, sondern nur das hinzufügen, was Sie benötigen. In Ihrem Fall müssen Sie anscheinend nur den AnalyticsServiceDienst hinzufügen .

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

Karim
quelle
9
Ich habe das durch diese Methode gelöst. Für Anfänger ist jedoch zu beachten, dass diese Codes möglicherweise innerhalb von "application" tag =)
hinzugefügt werden müssen
57
Die eigentliche Frage ist, warum diese hier nicht vorhanden sind: developer.google.com/analytics/devguides/collection/android/v4 ?
Buddy
6
@EnesBattal möglicherweise, weil diese nur auf Geräten ohne Google Play-Dienste erforderlich sind. Aber ich denke auch, dass es in diesen Dokumenten erwähnt werden sollte.
Aandis
2
Ich habe diese zu meinem Manifest hinzugefügt und erhalte jetzt keine Warnung mehr in LogCat. Wenn ich jedoch das Debuggen für GoogleAnalytics aktiviere, werden sie immer noch im Terminal angezeigt. Die Befehle, die ich verwendet habe, um das Debuggen im Terminal zu aktivieren: "adb shell setprop log.tag.GAv4 DEBUG" und "adb logcat -s GAv4"
Mehlyfication
@zack, wenn die App in den Play Store geht, bedeutet dies, dass Sie nicht wissen, auf welchem ​​Gerät die App installiert wird. Daher müssen diese Dienste und Empfänger dem Manifest hinzugefügt werden. In meinem Fall habe ich sicherlich mehrere Geräte, auf denen die Play-Dienste bereits installiert sind, und dies war die einzige Möglichkeit, die Warnungen in LogCat
Phileo99 am
26

füge dies auf Manifest hinzu

 <service android:name="com.google.android.gms.analytics.AnalyticsService"
 android:enabled="true"
 android:exported="false"/>
Steve Lai
quelle
Welches Ergebnis in der Konsole sollte angezeigt werden, um sicherzustellen, dass sie funktioniert?
Deadfish
0

Ich hatte ein ziemlich ähnliches Problem - die Nachricht zu AnalyticsService sieht so aus, als hätte Ihr Gerät keine Google Services, aber für mich stimmte das nicht. Ich habe jedoch festgestellt, dass ich nicht sicher sein konnte, ob dieses Protokoll von meiner App aus aufgerufen wurde - das Protokoll sah folgendermaßen aus: Der 10173-10192/? V/GAV4Paketname wurde also ausgeblendet.

Um Protokolle von Google Analytics anzuzeigen, müssen Sie die Protokollebene in ausführlich ändern:

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

Es hilft Ihnen zu analysieren, was eine Ursache für Ihre Probleme ist.

Krzysztof Skrzynecki
quelle
4
GoogleAnalytics.getInstance (this) .getLogger (). SetLogLevel (Logger.LogLevel.VERBOSE); ist veraltet. Verwenden Sie stattdessen "adb shell setprop log.tag.GAv4 DEBUG; adb logcat -s GAv4"
wie
Sie verwenden veraltete Methoden.
IgorGanapolsky
5
@IgorGanapolsky es wurde im Juni '15 nicht veraltet
Krzysztof Skrzynecki