AnalyticsService não registrado no manifesto do aplicativo - erro


85

Estou tentando implementar o serviço google analytics para o aplicativo Android usando a seguinte documentação fornecida no SDK:

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

Não consigo ver nenhuma informação no site de administração do Analytics.

Enquanto o aplicativo está em execução, vejo a seguinte mensagem de depuração

"AnalyticsService não registrado no manifesto do aplicativo. Os acessos podem não ser entregues de forma confiável. Consulte https://developers.google.com/analytics/devguides/collection/android/v4/ para obter instruções."

Você pode me sugerir como registrar este serviço?


Verifique se você inicializou a análise na classe do aplicativo ou na atividade de aterrissagem primária também. Eu recomendo remover o código do rastreador global (XML).
Manan Sharma

Respostas:


178

Não tenho certeza se agir de acordo com este aviso resolverá o problema que você está enfrentando (ou seja, não estou vendo nenhuma informação no site de administração do Analytics).

De qualquer forma, aqui está o que você deve adicionar ao AndroidManifest.xml dentro da tag do aplicativo se quiser se livrar deste aviso:

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

Você não precisa adicionar tudo isso, apenas adicione o que você precisa. No seu caso, aparentemente você só precisa adicionar o AnalyticsServiceserviço.

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


9
Eu resolvi isso por meio deste método. No entanto, uma coisa a ser observada para o iniciante é que esses códigos podem precisar ser adicionados dentro da tag "aplicativo" =)
yi2ng2

57
A verdadeira questão é por que eles não estão presentes aqui: developers.google.com/analytics/devguides/collection/android/v4 ?
Buddy

6
@EnesBattal talvez porque eles sejam necessários apenas em dispositivos que não possuem os serviços do Google Play. Mas também acho que deve ser mencionado nesses documentos.
aandis

2
Eu adicionei isso ao meu manifesto e agora não recebo mais o aviso no LogCat, mas quando eu habilito a depuração para o GoogleAnalytics eu ainda os recebo no terminal? Os comandos que usei para habilitar a depuração no Terminal: "adb shell setprop log.tag.GAv4 DEBUG" e "adb logcat -s GAv4"
Mehlyfication

@zack, se o aplicativo está indo para a Play Store, isso significa que você não sabe em qual dispositivo o aplicativo será instalado, portanto, está implícito que esses serviços e receptores devem ser adicionados ao manifesto. Certamente no meu caso, tenho vários aparelhos que já possuem os serviços do Play instalados, e essa era a única forma de me livrar dos avisos no LogCat
Phileo99

26

adicione isso no manifesto

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

qual resultado no console deve ser exibido para ter certeza de que funcionou?
deadfish


0

Eu tive um problema semelhante - a mensagem sobre AnalyticsService parece que seu dispositivo não tem serviços do Google, mas não era verdade para mim. No entanto, percebi que não podia ter certeza de que esse log foi invocado do meu aplicativo - o log era assim:, 10173-10192/? V/GAV4então o nome do pacote estava oculto.

Para ver os registros do Google Analytics, você deve alterar o nível do registro para detalhado:

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

Isso o ajudará a analisar qual é a causa de seus problemas.


4
GoogleAnalytics.getInstance (this) .getLogger (). SetLogLevel (Logger.LogLevel.VERBOSE); está obsoleto. Use "adb shell setprop log.tag.GAv4 DEBUG; adb logcat -s GAv4" em vez
aselims

Você está usando métodos obsoletos.
IgorGanapolsky de

5
@IgorGanapolsky não foi descontinuado em junho '15
Krzysztof Skrzynecki
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.