恢复

时间:2019-06-25 15:14:29

标签: android

我的应用正在恢复过程中,它在Android框架代码中崩溃。我无法重现崩溃,只能通过崩溃报告来了解它。此外,崩溃发生在Android 7、8、9上,并散布在许多制造商中。

这是android.os.RemoteException的导致崩溃的堆栈跟踪:

com.android.server.am.ActivityManagerService.isTopOfTask(ActivityManagerService.java:14764) at android.app.IActivityManager$Stub.onTransact(IActivityManager.java:2417) at com.android.server.am.ActivityManagerService.onTransact(ActivityManagerService.java:3346) at android.os.Binder.execTransact(Binder.java:731)

上述异常是由我的Activity的{​​{1}}调用触发的,然后在 super.onResume()

最后,由于系统无法启动应用程序,上述异常被捕获为IllegalArgumentException。这是最后一个堆栈跟踪:

android.os.Parcel.createException + 1970 (Parcel.java:1970) androidx.fragment.app.FragmentActivity.onResume + 514 (FragmentActivity.java:514)

除了对RuntimeException的调用之外,我的android.app.ActivityThread.performResumeActivity + 4015 (ActivityThread.java:4015) com.android.internal.os.ZygoteInit.main + 965 (ZygoteInit.java:965)函数中没有代码运行。

我尝试在有问题的onResume中使应用程序背景化/前景化,同时限制了后台进程,并且打开了“请勿保持活动”,但无法重现崩溃。

有人建议重现崩溃吗?

以下代码显示super的启动方式:

Activity

这是代码关闭Service

@Singleton
class ExoplayerManager @Inject constructor(
        @Application private val context: Context,
        ...
) : CastManager.CastEventListener {

    private fun startService() {
        lecture?.let {
            val intent = ExoplayerService.createIntent(context, it.generateCompositeIdObject())

            logd { "[ExoplayerService] startForegroundService called" }
            ContextCompat.startForegroundService(context, intent)
        }
    }
}

0 个答案:

没有答案