J'ai mis à jour mon application pour prendre en charge le SDK 26 et maintenant, Google Analytics provoque des plantages lors de l'exécution sur Android Oreo:
Exception fatale: Java.lang.RuntimeException: impossible de démarrer le récepteur com.google.Android.gms.analytics.AnalyticsReceiver: Java.lang.IllegalStateException: non autorisé à démarrer le service Intent {act = com.google.Android.gms.analytics. ANALYTICS_DISPATCH cmp = com.example.Android/com.google.Android.gms.analytics.AnalyticsService}: l'application est en arrière-plan uid UidRecord {3f302e5 u0a107 RCVR idle procs: 1 seq (0,0,0)} at Android.app. ActivityThread.handleReceiver (ActivityThread.Java:3259) sur Android.app.ActivityThread.-wrap17 (Source inconnue) sur Android.app.ActivityThread $ H.handleMessage (ActivityThread.Java:1677) sur Android.os.Handler.dispatchMessage (Handler .Java: 105) sur Android.os.Looper.loop (Looper.Java:164) sur Android.app.ActivityThread.main (ActivityThread.Java:6541) sur Java.lang.reflect.Method.invoke (Method.Java) à com.Android.internal.os.Zygote $ MethodAndArgsCaller.run (Zygote.Java:240) à com.Android.internal.os.ZygoteInit.main (ZygoteInit.Java:767) Causé par Java.lang.IllegalStateException: Pas tous due to start service Intent {act = com.google.Android.gms.analytics.ANALYTICS_DISPATCH cmp = com.example.Android/com.google.Android.gms.analytics.AnalyticsService}: l'application est en arrière-plan uidRecord {3f302e5 u0a107 RCVR processus inactifs: 1 seq (0,0,0)} sur Android.app.ContextImpl.startServiceCommon (ContextImpl.Java:1505) sur Android.app.ContextImpl.startService (ContextImpl.Java:1461) sur Android.content.ContextWrapper. startService (ContextWrapper.Java:644) sur Android.content.ContextWrapper.startService (ContextWrapper.Java:644) sur com.google.Android.gms.internal.zzaot.onReceive (Source inconnue: 68) sur com.google.Android. gms.analytics.AnalyticsReceiver.onReceive (Source inconnue: 11) sur Android.app.ActivityThread.handleReceiver (ActivityThread.Java:3252) sur Android.app.ActivityThread.-wrap17 (Source inconnue) sur Android.app.ActivityThread $ H. handleMessage (ActivityThread.Java:1677) sur Android.os.Handler.dispatchMessage (Handler.Java:105) sur Android.os.Looper.loop (Looper.Java:164) sur Android.app.ActivityThread.m ain (ActivityThread.Java:6541) à Java.lang.reflect.Method.invoke (Method.Java) à com.Android.internal.os.Zygote $ MethodAndArgsCaller.run (Zygote.Java:240) à com.Android.internal .os.ZygoteInit.main (ZygoteInit.Java:767)
Ceci est mon manifeste pertinent:
<meta-data
Android:name="com.google.Android.gms.analytics.globalConfigResource"
Android:resource="@xml/analytics"/>
<meta-data
Android:name="com.google.Android.gms.version"
Android:value="@integer/google_play_services_version"/>
<!-- 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"
Android:exported="true"/>
Des centaines d'appareils Oreo se sont écrasés à cause de cela au cours des dernières 24 heures. Semble n'affecter que lors de l'installation. Je vais essayer d'ajouter Android: permission = "Android.permission.BIND_JOB_SERVICE" aux 2 services d'analyse et voir. Informera.
Je serai heureux de fournir plus d'informations si nécessaire. Merci
Je recommande la mise à niveau vers la version 11.4.0 de play-services. Ajoutez ceci dans votre fichier Gradle:
compile "com.google.Android.gms:play-services-analytics:11.4.0
Dans la section Play Services Revision 11.4. , analytics:
AnalyticsJobService
. Cette classe prend en charge la compatibilité pour Android O et est utilisée par Analytics pour télécharger des données. Aucune action n'est nécessaire pour utiliser cette classe, elle est ajoutée automatiquement dans le cadre du package Analytics.getContext()
de la classe AnalyticsService
.CampaignTrackingService
.et vous devez également obtenir la permission. Android: permission = "Android.permission.BIND_JOB_SERVICE"
Voir ci-dessous https://developers.google.com/Android/reference/com/google/Android/gms/analytics/AnalyticsJobService
parce que CampaignTrackingService
est maintenant obsolète
supprimez simplement cette ligne de votre manifeste
<service Android:name="com.google.Android.gms.analytics.CampaignTrackingService"
Android:exported="true"/>