java.lang.NoSuchMethodError: No interface method sort(Ljava/util/Comparator;)排序数组列表中的异常

2022-09-01 12:20:47

我试图在Android应用程序中的Java中排序,但我得到了这个奇怪的例外。ArrayList

法典:

eventsList.sort(new Comparator<Event>() {
        @Override
        public int compare(Event event, Event t1) {
            return event.getEventStartDate().compareTo(t1.getEventStartDate());
        }
    });

例外:

java.lang.NoSuchMethodError: No interface method sort(Ljava/util/Comparator;)V in class Ljava/util/List; or its super classes (declaration of 'java.util.List' appears in /system/framework/core-libart.jar)

答案 1

ArrayList#sort() 是在 API 级别 24 中添加的,低于 API 级别 24 的运行时没有该方法。看起来你是24岁,所以你首先得到了要编译的代码。compileSdkVersion

请改用。Collections.sort(list, comparator)


答案 2

Zxing?

如果你在 Zxing 核心库中遇到这个错误,你可以通过将 Zxing 降级到 3.3.x(目前为 3.3.3)来解决它。com.google.zxing.qrcode.detector.FinderPatternFinder.selectBestPatterns

有关详细信息,请参阅 https://github.com/zxing/zxing/issues/1170


推荐