AnalyticsService no registrado en el manifiesto de la aplicación - error


85

Estoy tratando de implementar el servicio de análisis de Google en la aplicación de Android utilizando la siguiente documentación proporcionada en sdk:

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

No puedo ver ninguna información en el sitio de administración de análisis.

Mientras la aplicación se está ejecutando, veo el siguiente mensaje de depuración

"AnalyticsService no está registrado en el manifiesto de la aplicación. Es posible que los resultados no se entreguen de manera confiable. Consulte https://developers.google.com/analytics/devguides/collection/android/v4/ para obtener instrucciones".

¿Puede sugerirme cómo registrar este servicio?


Compruebe si ha inicializado el análisis en la clase de aplicación o también en la actividad de aterrizaje principal. Recomiendo eliminar el código de seguimiento global (XML).
Manan Sharma

Respuestas:


178

No estoy seguro de si actuar sobre esta advertencia resolverá el problema que tiene (es decir, no ver ninguna información en el sitio de administración de Analytics).

De todos modos, esto es lo que debe agregar a AndroidManifest.xml dentro de la etiqueta de la aplicación si desea deshacerse de esta advertencia:

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

No tiene que agregar todo esto, solo agregue lo que necesita. En su caso, aparentemente solo necesita agregar el AnalyticsServiceservicio.

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


9
Resolví esto a través de este método. Sin embargo, una cosa a tener en cuenta para los principiantes es que es posible que estos códigos deban agregarse dentro de la etiqueta "aplicación" =)
yi2ng2

57
La verdadera pregunta es por qué no están presentes aquí: developers.google.com/analytics/devguides/collection/android/v4 ?
Buddy

6
@EnesBattal quizás porque estos son necesarios solo en dispositivos que no tienen servicios de Google Play. Pero yo también creo que debería mencionarse en esos documentos.
aandis

2
Los agregué a mi manifiesto y ahora ya no recibo la advertencia en LogCat, pero cuando habilito la depuración para GoogleAnalytics, ¿todavía los obtengo en la terminal? Los comandos que he usado para habilitar la depuración en Terminal: "adb shell setprop log.tag.GAv4 DEBUG" y "adb logcat -s GAv4"
Mehlyfication

@zack, si la aplicación va a Play Store, eso significa que no sabe en qué dispositivo se instalará la aplicación, por lo tanto, está implícito que estos servicios y receptores deben agregarse al manifiesto. Ciertamente, en mi caso, tengo varios dispositivos que tienen los servicios de Play ya instalados, y esta era la única forma de deshacerme de las advertencias en LogCat
Phileo99

26

agregar esto en el manifiesto

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

¿Qué resultado debe mostrarse en la consola para asegurarse de que funcione?
Deadfish


0

Tuve un problema bastante similar: el mensaje sobre AnalyticsService parece que su dispositivo no tiene servicios de Google, pero no era cierto para mí. Sin embargo, me di cuenta de que no podía estar seguro de que este registro hubiera sido invocado desde mi aplicación; el registro se veía así:, 10173-10192/? V/GAV4por lo que el nombre del paquete estaba oculto.

Para ver los registros de Google Analytics, debe cambiar el nivel de registro a detallado:

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

Le ayudará a analizar cuál es la causa de sus problemas.


4
GoogleAnalytics.getInstance (esto) .getLogger (). SetLogLevel (Logger.LogLevel.VERBOSE); es obsoleto. Utilice "adb shell setprop log.tag.GAv4 DEBUG; adb logcat -s GAv4" en su lugar
aselims

Estás utilizando métodos obsoletos.
IgorGanapolsky

5
@IgorGanapolsky no fue obsoleto en junio de 2015
Krzysztof Skrzynecki
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.