gpt4 book ai didi

google-play - Android 8 handleReceiver/startServiceCommon错误

转载 作者:行者123 更新时间:2023-12-02 09:41:42 26 4
gpt4 key购买 nike

因为我们都喜欢它酥脆:

我在商店中有一个应用会崩溃,无法重现(在4个不同的android8设备上)的应用。根据GPlay的说法,它是RuntimeException中的ActivityThread.handleReceiver,仅在Android 8.x中。

由于这仅发生在具有PlayStore版本的“某些”设备上,因此我可能是因为ProGuard和/或签名。
另外,我没有在我的应用程序中使用任何Services / BroadcastReceiver,因为Android 8具有startForegroundService而不是startService。在我的应用程序中,我使用FusedLocationProviderClient和最新的GPlay服务,但猜测它们应该可以正常工作。

堆栈跟踪:

java.lang.RuntimeException: at android.app.ActivityThread.handleReceiver (ActivityThread.java:3399)
at android.app.ActivityThread.-wrap18 (Unknown Source) at android.app.ActivityThread$H.handleMessage (ActivityThread.java:1780) at android.os.Handler.dispatchMessage (Handler.java:105) at android.os.Looper.loop (Looper.java:164) at android.app.ActivityThread.main (ActivityThread.java:6944) at java.lang.reflect.Method.invoke (Native Method) at com.android.internal.os.Zygote$MethodAndArgsCaller.run (Zygote.java:327) at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:1374



造成原因:java.lang.IllegalStateException:

at android.app.ContextImpl.startServiceCommon (ContextImpl.java:1538) at android.app.ContextImpl.startService (ContextImpl.java:1484) at android.content.ContextWrapper.startService (ContextWrapper.java:663) at com.evernote.android.job.WakeLockUtil.startWakefulService (WakeLockUtil.java:95) at com.evernote.android.job.JobRescheduleService.startService (JobRescheduleService.java:24) at com.evernote.android.job.JobManager. (JobManager.java:191) at com.evernote.android.job.JobManager.create (JobManager.java:114) at com.evernote.android.job.JobBootReceiver.onReceive (JobBootReceiver.java:49) at android.app.ActivityThread.handleReceiver (ActivityThread.java:3392)



我已经在这里找到一个相关的线程,建议扩展proGuardconfig,所以很不幸-没有修复:
-keep public class * extends android.app.Activity
-keep public class * extends android.app.Application
-keep public class * extends android.app.Service
-keep public class * extends android.content.BroadcastReceiver
-keep public class * extends android.content.ContentProvider
-keep public class * extends android.preference.Preference
-keep public class * extends android.support.v4.app.Fragment
-keep public class * extends android.app.Fragment
  • 任何提示和反馈都值得赞赏!
  • 最佳答案

    Android的难点在于它是开源的,这意味着在许多不同的设备上会有许多不同的版本。不过,最棒的是它是开源的!这意味着您可以阅读问题的源代码。

    这是我调试崩溃报告的方法,如下所示:

  • 我使用Google查找源代码“ContextImpl.java startServiceCommon android源代码”
  • 有趣的是,在执行此操作时,我发现其他人的问题here好像evernote android-job库出现错误。在Android O中,后台任务必须调用Context.startForegroundService而不是Context.startService。您需要升级库吗?
  • 如果我没有找到这个的话,我会去看看the source code的。
  • 如果单击该页面顶部的[blame],您会看到此代码已添加here
  • 所做更改的说明告诉您,这与查找启动进程(不应在后台运行)的进程有关。
  • this StackOverflow question上似乎还有一些更好的答案
  • 关于google-play - Android 8 handleReceiver/startServiceCommon错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51151967/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com