java.lang.NoSuchMethodError:排序arraylist android中没有接口方法排序(Ljava/util/Comparator;)异常

Hos*_*eeb 19 java android arraylist

我正在尝试ArrayList在Android应用程序中对Java 进行排序,但我得到了这个奇怪的异常.

码:

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

例外:

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)
Run Code Online (Sandbox Code Playgroud)

laa*_*lto 43

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

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

  • 嗯,很久以前我曾经使用过`Collection.sort`,但今天我刚刚在 Android Studio 的代码完成中发现了这种方法,但它可能是一个陷阱 :)。谢谢 (3认同)

cod*_*rox 15

在Zxing中无需降级版本

只需在应用程序级别 gradle中添加以下内容

android{
....
    compileOptions {
        coreLibraryDesugaringEnabled true
        sourceCompatibility = '1.8'
        targetCompatibility = '1.8'
    }

}
Run Code Online (Sandbox Code Playgroud)

和

dependencies {
    ......
    coreLibraryDesugaring 'com.android.tools:desugar_jdk_libs:1.1.5'
}
Run Code Online (Sandbox Code Playgroud)


mic*_*ael 5

如果你尝试怎么办

Collections.sort(eventsList, new Comparator...
Run Code Online (Sandbox Code Playgroud)

据我所知ArrayList没有sort方法。


tob*_*obs 5

Zxing?

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

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