AnalyticsService, uygulama manifestinde kayıtlı değil - hata


85

Sdk'de sağlanan aşağıdaki belgeleri kullanarak google analytics hizmetini android uygulamasına uygulamaya çalışıyorum:

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

Analiz yönetici sitesinde herhangi bir bilgi göremiyorum.

Uygulama çalışırken aşağıdaki hata ayıklama mesajını görüyorum

"AnalyticsService, uygulama manifestinde kayıtlı değil. İsabetler güvenilir bir şekilde teslim edilmeyebilir. Talimatlar için https://developers.google.com/analytics/devguides/collection/android/v4/ adresine bakın ."

Lütfen bana bu hizmeti nasıl kaydettireceğimi önerebilir misiniz?


Analitiği uygulama sınıfında mı yoksa birincil iniş etkinliğinde mi başlattığınızı kontrol edin. Global izleyici (XML) kodunu kaldırmanızı tavsiye ederim.
Manan Sharma

Yanıtlar:


178

Bu uyarıya göre hareket etmenizin yaşadığınız sorunu çözüp çözmeyeceğinden emin değilim (yani, Analytics yönetici sitesinde herhangi bir bilgi görmemek).

Her neyse, bu uyarıdan kurtulmak istiyorsanız uygulama etiketinin içine AndroidManifest.xml'ye eklemeniz gerekenler:

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

Bunların hepsini eklemenize gerek yok, sadece ihtiyacınız olanı ekleyin. Sizin durumunuzda, görünüşe göre sadece AnalyticsServicehizmeti eklemeniz gerekiyor .

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


9
Bunu bu yöntemle çözdüm. Bununla birlikte, yeni başlayanlar için dikkat edilmesi gereken bir şey, bu kodların "uygulama" etiketinin içine eklenmesi gerekebileceğidir =)
yi2ng2

57
Asıl soru, bunların neden burada bulunmadığıdır: developer.google.com/analytics/devguides/collection/android/v4 ?
Buddy

6
@EnesBattal, bunun nedeni yalnızca Google oyun hizmetlerine sahip olmayan cihazlarda gerekli olmasıdır. Ama ben de o belgelerde bundan bahsedilmesi gerektiğini düşünüyorum.
aandis

2
Bunları bildirimime ekledim ve artık LogCat'te uyarı almıyorum, ancak GoogleAnalytics için hata ayıklamayı etkinleştirdiğimde bunları yine de terminalde alıyorum? Terminal'de hata ayıklamayı etkinleştirmek için kullandığım komutlar: "adb shell setprop log.tag.GAv4 DEBUG" ve "adb logcat -s GAv4"
Mehlyfication

@zack, uygulama Play Store'a gidiyorsa, bu, uygulamanın hangi cihaza yükleneceğini bilmediğiniz anlamına gelir, bu nedenle, bu hizmetlerin ve alıcıların bildirime eklenmesi gerektiği ima edilir. Kesinlikle benim durumumda, Play hizmetlerinin zaten kurulu olduğu birkaç cihazım var ve bu, LogCat
Phileo99

26

bunu manifestoya ekle

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

çalıştığından emin olmak için konsolda hangi sonuç görüntülenmelidir?
deadfish


0

Oldukça benzer bir sorun yaşadım - AnalyticsService ile ilgili mesaj , cihazınızda Google Hizmetleri yok gibi görünüyor, ancak bu benim için doğru değildi. Ancak, bu günlüğün uygulamamdan çağrıldığından emin olamadığımı fark ettim - günlük şuna benziyordu: 10173-10192/? V/GAV4yani paket adı gizlendi.

Google Analytics günlüklerini görmek için, günlük düzeyini ayrıntılı olarak değiştirmelisiniz:

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

Sorunlarınızın nedeninin ne olduğunu analiz etmenize yardımcı olacaktır.


4
GoogleAnalytics.getInstance (bu) .getLogger (). SetLogLevel (Logger.LogLevel.VERBOSE); kullanımdan kaldırıldı. Bunun yerine "adb shell setprop log.tag.GAv4 DEBUG; adb logcat -s GAv4" kullanın
aselims

Kullanımdan kaldırılmış yöntemler kullanıyorsunuz.
IgorGanapolsky

5
@IgorGanapolsky, Jun '15'te kullanımdan kaldırılmadı
Krzysztof Skrzynecki
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.