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

问题描述

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

这是堆栈跟踪:

        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)

谁能帮我解决这个问题。

解决方法

在搭载 Android 11 的三星 Galaxy S10e 上得到了类似的:

Fatal Exception: java.lang.IllegalArgumentException: Comparison method violates its general contract!
       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:11243)
       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)
Caused by android.os.RemoteException: Remote stack trace:
    at java.util.TimSort.mergeLo(TimSort.java:777)
    at java.util.TimSort.mergeAt(TimSort.java:514)
    at java.util.TimSort.mergeCollapse(TimSort.java:441)
    at java.util.TimSort.sort(TimSort.java:245)
    at java.util.Arrays.sort(Arrays.java:1492)

目前没有更多信息。