webentwicklung-frage-antwort-db.com.de

java.lang.NoSuchMethodError: Keine Ausnahme der Schnittstellenmethode (Ljava/util/Comparator;) beim Sortieren der Arrayliste android

Ich versuche, einen ArrayList in Java in der Android-App zu sortieren, aber ich bekomme diese seltsame Ausnahme. 

Code:

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

Ausnahme:

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)
17
Hossam Ghareeb

ArrayList#sort() wurde in API-Ebene 24 hinzugefügt und Laufzeiten unter API-Ebene 24 verfügen nicht über diese Methode. Sieht aus, als wäre Ihr compileSdkVersion auf 24, so dass Sie den zu kompilierenden Code erhalten haben.

Verwenden Sie stattdessen Collections.sort(list, comparator).

41
laalto

Was ist, wenn Sie es versuchen?

Collections.sort(eventsList, new Comparator...

Soweit ich weiß, hat ArrayList keine sort-Methode.

3
mic4ael

List hat keine eigene Sortiermethode, die Sie aufrufen müssen 

Collections.sort() 

als Methode auf der Liste. Wenn dies ein ClassCastError zurückgibt, bedeutet dies, dass die Liste nicht sortierbare Elemente enthält. Ich denke, das sollte das Problem beheben, aber ohne vollständigen Code ist es schwer zu überprüfen. 

3
Matt

ArrayList.sort () -Methode wurde später hinzugefügt, deshalb funktioniert sie nicht. Wir können die Java-Version (1.8) aktualisieren oder die Methode unten verwenden.

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

Zxing?

Wenn Sie diesen Fehler in der Zxing-Kernbibliothek in com.google.zxing.qrcode.detector.FinderPatternFinder.selectBestPatterns Finden, können Sie ihn beheben, indem Sie Zxing auf 3.3.x (derzeit 3.3.3) zurückstufen.

Weitere Informationen finden Sie unter https://github.com/zxing/zxing/issues/117 .

0
tobltobs