AnalyticsService non registrato nel manifesto dell'app - errore


85

Sto cercando di implementare il servizio di analisi di Google sull'app Android utilizzando la seguente documentazione fornita in sdk:

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

Non riesco a visualizzare alcuna informazione nel sito di amministrazione dell'analisi.

Mentre l'app è in esecuzione, viene visualizzato il seguente messaggio di debug

"AnalyticsService non è registrato nel manifest dell'app. Gli hit potrebbero non essere forniti in modo affidabile. Consulta https://developers.google.com/analytics/devguides/collection/android/v4/ per istruzioni."

Potete suggerirmi come registrare questo servizio?


Controlla se hai inizializzato l'analisi nella classe dell'applicazione o anche nell'attività di atterraggio principale. Consiglio di rimuovere il codice Global Tracker (XML).
Manan Sharma,

Risposte:


178

Non sono sicuro se agire in base a questo avviso risolverà il problema che stai riscontrando (ovvero non vedere alcuna informazione nel sito di amministrazione di Analytics).

Ad ogni modo, ecco cosa dovresti aggiungere ad AndroidManifest.xml all'interno del tag dell'applicazione se vuoi sbarazzarti di questo avviso:

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

Non devi aggiungere tutto questo, aggiungi solo quello che ti serve. Nel tuo caso, apparentemente devi solo aggiungere il AnalyticsServiceservizio.

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


9
L'ho risolto con questo metodo. Tuttavia, una cosa da tenere presente per i principianti è che questi codici potrebbero dover essere aggiunti all'interno del tag "application" =)
yi2ng2

57
La vera domanda è perché questi non sono presenti qui: developers.google.com/analytics/devguides/collection/android/v4 ?
Buddy

6
@EnesBattal forse perché questi sono richiesti solo su dispositivi che non dispongono dei servizi di Google Play. Ma anch'io credo che dovrebbe essere menzionato in quei documenti.
aandis

2
Li ho aggiunti al mio manifest e ora non ricevo più l'avviso in LogCat, ma quando abilito il debug per GoogleAnalytics li ricevo ancora nel terminale? I comandi che ho usato per abilitare il debug nel Terminale: "adb shell setprop log.tag.GAv4 DEBUG" e "adb logcat -s GAv4"
Mehlyfication

@zack, se l'app sta andando nel Play Store, significa che non sai su quale dispositivo verrà installata l'app, quindi è implicito che questi servizi e ricevitori devono essere aggiunti al manifest. Sicuramente nel mio caso, ho diversi dispositivi su cui sono già installati i servizi di gioco, e questo era l'unico modo per sbarazzarmi degli avvisi in LogCat
Phileo99

26

aggiungi questo su manifest

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

quale risultato deve essere visualizzato nella console per essere sicuri che funzioni?
deadfish


0

Ho avuto un problema abbastanza simile: il messaggio su AnalyticsService sembra che il tuo dispositivo non abbia i servizi Google, ma non era vero per me. Tuttavia, mi sono reso conto che non potevo essere sicuro che questo registro fosse stato richiamato dalla mia app - il registro aveva questo aspetto:, 10173-10192/? V/GAV4quindi il nome del pacchetto era nascosto.

Per visualizzare i log di Google Analytics, devi modificare il livello di log in dettagliato:

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

Ti aiuterà ad analizzare qual è la causa dei tuoi problemi.


4
GoogleAnalytics.getInstance (questo) .getLogger (). SetLogLevel (Logger.LogLevel.VERBOSE); è deprecato. Utilizza invece "adb shell setprop log.tag.GAv4 DEBUG; adb logcat -s GAv4"
aselims

Stai utilizzando metodi deprecati.
IgorGanapolsky

5
@IgorGanapolsky non è stato ritirato nel giugno '15
Krzysztof Skrzynecki
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.