Android比较法违反了其与对讲的总合同
在应用程序对讲处于活动状态时,我收到异常:Android比较法违反了其与对讲的总合同,android,exception,mergesort,comparable,talkback,Android,Exception,Mergesort,Comparable,Talkback,在应用程序对讲处于活动状态时,我收到异常: java.lang.IllegalArgumentException: Comparison method violates its general contract! java.lang.IllegalArgumentException: Comparison method violates its general contract! at
java.lang.IllegalArgumentException: Comparison method violates its general contract!
java.lang.IllegalArgumentException: Comparison method violates its general contract!
at java.util.ComparableTimSort.mergeLo(ComparableTimSort.java:710)
at java.util.ComparableTimSort.mergeAt(ComparableTimSort.java:447)
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:6635)
at android.view.ViewGroup$ChildListForAccessibility.obtain(ViewGroup.java:6600)
at android.view.ViewGroup.addChildrenForAccessibility(ViewGroup.java:1703)
at android.view.ViewGroup.onInitializeAccessibilityNodeInfoInternal(ViewGroup.java:2529)
at android.view.View.onInitializeAccessibilityNodeInfo(View.java:5225)
at android.widget.AdapterView.onInitializeAccessibilityNodeInfo(AdapterView.java:937)
at android.widget.AbsListView.onInitializeAccessibilityNodeInfo(AbsListView.java:1494)
at android.widget.GridView.onInitializeAccessibilityNodeInfo(GridView.java:2263)
at android.view.View.createAccessibilityNodeInfoInternal(View.java:5186)
at android.view.View.createAccessibilityNodeInfo(View.java:5173)
at android.view.AccessibilityInteractionController$AccessibilityNodePrefetcher.prefetchDescendantsOfRealNode(AccessibilityInteractionController.java:811)
at android.view.AccessibilityInteractionController$AccessibilityNodePrefetcher.prefetchDescendantsOfRealNode(AccessibilityInteractionController.java:834)
at android.view.AccessibilityInteractionController$AccessibilityNodePrefetcher.prefetchAccessibilityNodeInfos(AccessibilityInteractionController.java:720)
at android.view.AccessibilityInteractionController.findAccessibilityNodeInfoByAccessibilityIdUiThread(AccessibilityInteractionController.java:147)
at android.view.AccessibilityInteractionController.access$300(AccessibilityInteractionController.java:49)
at android.view.AccessibilityInteractionController$PrivateHandler.handleMessage(AccessibilityInteractionController.java:971)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:149)
at android.app.ActivityThread.main(ActivityThread.java:5257)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:515)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:609)
at dalvik.system.NativeStart.main(Native Method)
问题是我没有在代码上使用比较方法。
遵循完全例外:
java.lang.IllegalArgumentException: Comparison method violates its general contract!
java.lang.IllegalArgumentException: Comparison method violates its general contract!
at java.util.ComparableTimSort.mergeLo(ComparableTimSort.java:710)
at java.util.ComparableTimSort.mergeAt(ComparableTimSort.java:447)
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:6635)
at android.view.ViewGroup$ChildListForAccessibility.obtain(ViewGroup.java:6600)
at android.view.ViewGroup.addChildrenForAccessibility(ViewGroup.java:1703)
at android.view.ViewGroup.onInitializeAccessibilityNodeInfoInternal(ViewGroup.java:2529)
at android.view.View.onInitializeAccessibilityNodeInfo(View.java:5225)
at android.widget.AdapterView.onInitializeAccessibilityNodeInfo(AdapterView.java:937)
at android.widget.AbsListView.onInitializeAccessibilityNodeInfo(AbsListView.java:1494)
at android.widget.GridView.onInitializeAccessibilityNodeInfo(GridView.java:2263)
at android.view.View.createAccessibilityNodeInfoInternal(View.java:5186)
at android.view.View.createAccessibilityNodeInfo(View.java:5173)
at android.view.AccessibilityInteractionController$AccessibilityNodePrefetcher.prefetchDescendantsOfRealNode(AccessibilityInteractionController.java:811)
at android.view.AccessibilityInteractionController$AccessibilityNodePrefetcher.prefetchDescendantsOfRealNode(AccessibilityInteractionController.java:834)
at android.view.AccessibilityInteractionController$AccessibilityNodePrefetcher.prefetchAccessibilityNodeInfos(AccessibilityInteractionController.java:720)
at android.view.AccessibilityInteractionController.findAccessibilityNodeInfoByAccessibilityIdUiThread(AccessibilityInteractionController.java:147)
at android.view.AccessibilityInteractionController.access$300(AccessibilityInteractionController.java:49)
at android.view.AccessibilityInteractionController$PrivateHandler.handleMessage(AccessibilityInteractionController.java:971)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:149)
at android.app.ActivityThread.main(ActivityThread.java:5257)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:515)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:609)
at dalvik.system.NativeStart.main(Native Method)
为什么我只有在对讲处于活动状态时才会出现此异常?加载gridview后会出现此异常(显示时,gridview已正确加载)
非常感谢
编辑:
我发现问题出在以下代码行:
public class GridLayoutAdapter extends BaseAdapter
{
@Override
public View getView(int position, View view, ViewGroup parent) {
view.setLayoutParams(new GridView.LayoutParams(60, 60));
}
如何解决这个问题?我不知道为什么我有一个比较方法
(如果我试着评论这行,它不会崩溃)你解决过这个问题吗?