Google Analytics服务Intent在Android Oreo上崩溃

che*_*ist 15 android google-analytics android-8.0-oreo

我已将我的应用升级为支持SDK 26,现在Google Analytics在Android Oreo上运行时会导致崩溃:

致命异常:java.lang.RuntimeException:无法启动接收器com.google.android.gms.analytics.AnalyticsReceiver:java.lang.IllegalStateException:不允许启动服务Intent {act = com.google.android.gms.analytics. ANALYTICS_DISPATCH cmp = com.example.android/com.google.android.gms.analytics.AnalyticsService}:app在android.app中的后台uid UidRecord {3f302e5 u0a107 RCVR idle procs:1 seq(0,0,0)}. Activity.Thread.handleReceiver(ActivityThread.java:3259)在Android.app.Handler.dispatchMessage(Handler)的android.app.ActivityThread $ H.handleMessage(ActivityThread.java:1677)上的android.app.ActivityThread.-wrap17(未知来源) .java:105)在android.app.Looper.loop(Looper.java:164)的android.app.ActivityThread.main(ActivityThread.java:6541)java.lang.reflect.Method.invoke(Method.java) at com.android.internal.os.Zygote $ MethodAndArgsCaller.run(Zygote.java:240)at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:767)由java.lang.IllegalStateException引起:不是全部 欠开始服务Intent {act = com.google.android.gms.analytics.ANALYTICS_DISPATCH cmp = com.example.android/com.google.android.gms.analytics.AnalyticsService}:app is in background uid UidRecord {3f302e5 u0a107 RCVR idle procs:1 seq(0,0,0)}在android.app.ContextImpl.startService(设置在Android.apptentImpl.java:1461)的android.content.ContextWrapper上的android.app.ContextImpl.startServiceCommon(ContextImpl.java:1505).位于com.google.android的com.google.android.gms.internal.zzaot.onReceive(未知来源:68)的android.content.ContextWrapper.startService(ContextWrapper.java:644)上的startService(ContextWrapper.java:644). android.app.ActivityThread $ H的android.app.ActivityThread.- wrap17(未知来源)的android.app.ActivityThread.handleReceiver(ActivityThread.java:3252)上的gms.analytics.AnalyticsReceiver.onReceive(未知来源:11). android.app.ActivityThread.m上android.os.Handler.dispatchMessage(Handler.java:105)处于android.app.Looper.loop(Looper.java:164)的handleMessage(ActivityThread.java:1677)ain(ActivityThread.java:6541)位于com.android.internal的com.android.internal.os.Zygote $ MethodAndArgsCaller.run(Zygote.java:240)的java.lang.reflect.Method.invoke(Method.java) .os.ZygoteInit.main(ZygoteInit.java:767)

这是我的相关清单:

<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"/>
Run Code Online (Sandbox Code Playgroud)

在过去的24小时内,有数百台Oreo设备因此而崩溃.似乎仅在安装时受到影响.我将尝试将android:permission ="android.permission.BIND_JOB_SERVICE"添加到2个分析服务中并查看.会报告.

如果需要,我很乐意提供更多信息.谢谢

sha*_*dhi 12

我建议升级到播放服务版本11.4.0.在Gradle文件中添加:

compile "com.google.android.gms:play-services-analytics:11.4.0
Run Code Online (Sandbox Code Playgroud)

Play Services Revision 11.4.0,分析部分:

  • 添加了一个新课程AnalyticsJobService.此类为Android O提供兼容性支持,并由Analytics用于上传数据.无需任何操作即可使用此类,它会自动添加为Analytics包的一部分.
  • 不推荐使用该类的getContext()方法AnalyticsService.
  • 贬低了这CampaignTrackingService门课.

而且你必须获得许可.机器人:权限= "android.permission.BIND_JOB_SERVICE"

请参阅以下 https://developers.google.com/android/reference/com/google/android/gms/analytics/AnalyticsJobService

  • 为什么谷歌没有在Oreo上发布此内容超出了我的理解? (4认同)
  • 使用版本15.0.2仍然有这个问题:'( (3认同)
  • 使用版本17.0.0仍然有这个问题 (3认同)