android.os.Parcel.createExceptionOrNull 致命异常:java.lang.IllegalArgumentException

Rac*_*yal 8 java android kotlin android-11

我在 android 11Samsung设备上收到此异常。

这是堆栈跟踪:

        at android.os.Parcel.createExceptionOrNull(Parcel.java:2389)
        at android.os.Parcel.createException(Parcel.java:2369)
        at android.os.Parcel.readException(Parcel.java:2352)
        at android.os.Parcel.readException(Parcel.java:2294)
        at android.app.IActivityManager$Stub$Proxy.getHistoricalProcessExitReasons(IActivityManager.java:11260)
        at android.app.ActivityManager.getHistoricalProcessExitReasons(ActivityManager.java:4231)
        at androidx.work.impl.utils.ForceStopRunnable.isForceStopped(ForceStopRunnable.java:171)
        at androidx.work.impl.utils.ForceStopRunnable.forceStopRunnable(ForceStopRunnable.java:210)
        at androidx.work.impl.utils.ForceStopRunnable.run(ForceStopRunnable.java:108)
        at androidx.work.impl.utils.SerialExecutor$Task.run(SerialExecutor.java:91)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
        at java.lang.Thread.run(Thread.java:923)
Run Code Online (Sandbox Code Playgroud)

谁能帮我解决这个问题。

Mar*_*coz 0

此异常似乎与在 Android 11 三星设备上访问历史进程退出原因的问题有关。它可能发生在使用 WorkManager 库的上下文中,该库在内部与 进行交互以ActivityManager检查应用程序是否已被强制停止。

您可以采取以下几个步骤来解决此问题:

  1. 更新依赖项:确保您使用最新版本的 WorkManager 库和其他相关依赖项。有时,兼容性问题会在新版本的库中得到解决。

  2. 检查权限:验证您的应用程序是否具有访问历史进程退出原因的必要权限。这可能涉及检查相关权限GET_TASKS或其他相关权限,具体取决于您的具体用例。

  3. 处理异常:在代码中实现适当的异常处理,以优雅地处理访问历史进程退出原因失败的情况。您可以捕获SecurityException或其他相关异常并适当处理它们,例如记录错误并在必要时通知用户。

  4. 检查特定于设备的问题:由于此问题似乎发生在运行 Android 11 的三星设备上,因此请考虑检查三星或遇到类似问题的其他开发人员是否记录了任何特定于设备的问题或解决方法。

  5. 向 Google/三星报告:如果您认为这是特定于平台的错误,请考虑通过各自的问题跟踪系统向 Google 或三星报告。提供有关问题的详细信息,包括设备型号、Android 版本和重现步骤,可以帮助他们调查和解决问题。

如果没有看到您的具体代码或了解更多有关应用程序架构的信息,那么提供更加量身定制的解决方案就很困难。但是,这些一般步骤应该可以帮助您调查和解决问题。