gpt4 book ai didi

android - java.lang.IllegalArgumentException : Comparison method violates its general contract? 异常

转载 作者:行者123 更新时间:2023-11-29 00:55:08 26 4
gpt4 key购买 nike

我发现了许多与此标题相关的重复问题,但没有一个与我的问题相关,因为无法通过 crashlytics 追踪我的问题。我一直收到关于这个标题的许多不同的崩溃。

检查这个例子(它只发生在 android 4 上):

enter image description here

Fatal Exception: java.lang.IllegalArgumentException: Comparison method violates its general contract!
at java.util.ComparableTimSort.mergeHi(ComparableTimSort.java:831)
at java.util.ComparableTimSort.mergeAt(ComparableTimSort.java:449)
at java.util.ComparableTimSort.mergeCollapse(ComparableTimSort.java:372)
at java.util.ComparableTimSort.sort(ComparableTimSort.java:178)
at java.util.ComparableTimSort.sort(ComparableTimSort.java:142)
at java.util.Arrays.sort(Arrays.java:1970)
at java.util.Collections.sort(Collections.java:1864)
at android.view.ViewGroup$ChildListForAccessibility.init(ViewGroup.java:6872)
at android.view.ViewGroup$ChildListForAccessibility.obtain(ViewGroup.java:6837)
at android.view.ViewGroup.dispatchPopulateAccessibilityEventInternal(ViewGroup.java:2706)
at android.view.View.dispatchPopulateAccessibilityEvent(View.java:5217)
at android.view.ViewGroup.dispatchPopulateAccessibilityEventInternal(ViewGroup.java:2712)
at android.view.View.dispatchPopulateAccessibilityEvent(View.java:5217)
at android.view.View.sendAccessibilityEventUncheckedInternal(View.java:5177)
at android.view.View.sendAccessibilityEventUnchecked(View.java:5159)
at android.view.View.sendAccessibilityEventInternal(View.java:5136)
at android.view.View.sendAccessibilityEvent(View.java:5105)
at android.view.View.performClick(View.java:4649)
at android.view.View$PerformClick.run(View.java:19438)
at android.os.Handler.handleCallback(Handler.java:733)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:146)
at android.app.ActivityThread.main(ActivityThread.java:5602)
at java.lang.reflect.Method.invokeNative(Method.java)
at java.lang.reflect.Method.invoke(Method.java:515)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1283)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1099)
at dalvik.system.NativeStart.main(NativeStart.java)

我通过研究发现,在遗漏某个条件的情况下进行比较/排序时会发生这种情况。同时在我的代码中,我没有使用文档/示例中提到的比较或排序方法。

非常感谢任何建议。

最佳答案

这似乎是@bwt 指出的 AOSP 的错误。

错误是框架 API 的一部分: http://www.docjar.com/html/api/java/util/ComparableTimSort.java.html (第 835 行)

在这种情况下,由于您构建布局的方式,特别是您组织 ViewGroup 元素的方式,Android 的源代码中出现了错误。

如果它只发生在 Android 4 上,解决它的一种方法是将您的 minSdk 至少升级到 5。另一种方法是实现某些人在 issue tracker link 中描述的解决方案。 ,这可能会导致您的应用失去一些辅助功能。另一种可能性是尝试找到一种不会崩溃的不同方式来组织您的布局,但由于导致崩溃的逻辑嵌入在 AOSP 中,这将超出您的控制范围,也许要靠运气了。

我个人会去 minSdk 升级,根据 Google鉴于目前 Android 4 的用户数量,对您的应用的影响非常小。

关于android - java.lang.IllegalArgumentException : Comparison method violates its general contract? 异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55361511/

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