繁体   English   中英

NoSuchMethodError - 没有静态方法比较(java / util / Comparator)

[英]NoSuchMethodError - no static method comparing (java/util/Comparator)

我正在Android设备上使用Gluon对java.utilList排序。 即使分配了8GB,应用程序也没有为iOS编译(不够ram),但这是另一个问题。

classpath 'org.javafxports:jfxmobile-plugin:1.3.4'

compile 'com.gluonhq:charm:4.3.2'

jfxmobile version = '3.2.4'

导致崩溃的这条线:

highscoreList.sort(comparing(Highscore::getScore).reversed()); //#89

03-22 09:42:14.709 27312 27337 E AndroidRuntime: FATAL EXCEPTION: JavaFX Application Thread
03-22 09:42:14.709 27312 27337 E AndroidRuntime: Process: com.x.pacman, PID: 27312
03-22 09:42:14.709 27312 27337 E AndroidRuntime: java.lang.NoSuchMethodError: No static method comparing(Ljava/util/function/Function;)Ljava/util/Comparator; in class Ljava/util/Comparator; or its super classes (declaration of 'java.util.Comparator' appears in /system/framework/core-libart.jar)
03-22 09:42:14.709 27312 27337 E AndroidRuntime:        at com.x.pacman.HighscoreUtil.readHighscoreList(HighscoreUtil.java:89)

我开始搜索,我发现这篇关于NoSuchMethodError的帖子 ,所以我试着做了以下,但是它仍然崩溃,现在我没有想法:

Comparator<Highscore> comparator = new Comparator<Highscore>() {
    @Override
    public int compare(Highscore highscore1, Highscore highscore2) {
        return highscore1.getScore() - highscore2.getScore();
    }
};

highscoreList.sort(comparator); //#97


03-22 11:30:48.836 16547 16570 E AndroidRuntime: 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)
03-22 11:30:48.836 16547 16570 E AndroidRuntime:        at com.kaufland.pacman.HighscoreUtil.readHighscoreList(HighscoreUtil.java:97)

Comparator#comparing()List#sort(Comparator)都在API级别24中添加,您的设备可能运行较低的API级别。

自API级别1以来,您可能会更好地使用Collections#sort()

仅供参考。 使用http://www.vavr.io/ collections时出现此错误。

我调用了LinkedHashSet的函数toSortedSet() 此函数尝试调用需要API级别24的Comparator.naturalOrder()

如果必须使用较低的API级别,只需使用重载的toSortedSet(Comparator)函数并传递合适的比较器。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM