앱을 실행시켜놓고 아침에 와서 봤더니 다음과 같은 에러가 나고 제대로 실행이 안되고 있었다...
FATAL EXCEPTION: inference
java.lang.IllegalArgumentException: Comparison method violates its general contract!
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:1498)
at java.util.ArrayList.sort(ArrayList.java:1470)
at java.util.Collections.sort(Collections.java:201)
at android.os.Handler.handleCallback(Handler.java:790)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:164)
at android.os.HandlerThread.run(HandlerThread.java:65)
구글링을 해본 결과 Comparator Interface를 구현할 때 비교 방법을 명확하게 하지 않은 경우 발생하는 에러라고 한다.
그래서 내가 수정한 코드는 다음과 같다.
public static class Descending implements Comparator<Float> {
@Override
public int compare(Float o1, Float o2) {
if (o1.equals(o2)) return 0;
return o2.compareTo(o1);
}
}
320x100
'프로그래밍 > Android-Java' 카테고리의 다른 글
[ANDROID] custom toast 커스텀 토스트 (0) | 2020.12.15 |
---|---|
[ANDROID] Dialog 밖의 어두운 배경 없애기 (0) | 2020.12.14 |
[ANDROID] 두 점의 각도 구하기 (0) | 2020.11.17 |
[ANDROID] base64 string 변환 (0) | 2020.10.29 |
[ANDROID] drawable 파일 bitmap 변환 (0) | 2020.10.29 |
댓글