我正在Android设备上使用gluon从java.util中对列表进行排序.即使分配了8GB,该应用程序也无法针对iOS进行编译(内存不足),但这是另一个问题.
classpath’org.javafxports:jfxmobile-plugin:1.3.4′
编译’com.gluonhq:charm:4.3.2′
jfxmobile版本=’3.2.4′
这行导致崩溃:
highscoreList.sort(comparing(Highscore :: getscore).reversed()); //#89
03-22 09:42:14.709 27312 27337 E AndroIDRuntime: FATAL EXCEPTION: JavaFX Application Thread03-22 09:42:14.709 27312 27337 E AndroIDRuntime: Process: com.x.pacman, PID: 2731203-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)
我开始搜索,发现this post about NoSuchMethodError,所以我尝试执行以下 *** 作,但可惜它仍然崩溃,现在我不明白了:
Comparator<Highscore> comparator = new Comparator<Highscore>() { @OverrIDe public int compare(Highscore highscore1, Highscore highscore2) { return highscore1.getscore() - highscore2.getscore(); }};highscoreList.sort(comparator); //#9703-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)
解决方法:
API级别24中同时添加了Comparator#comparing()
和List#sort(Comparator)
,并且您的设备可能正在运行较低的API级别.
自API级别1以来,您可能会一直拥有Collections#sort()
的运气.
以上是内存溢出为你收集整理的NoSuchMethodError-没有静态方法比较(java / util / Comparator)全部内容,希望文章能够帮你解决NoSuchMethodError-没有静态方法比较(java / util / Comparator)所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)