NoSuchMethodError-无静态方法比较(java/util/Comparator)
我正在Android设备上用Gluon对NoSuchMethodError-无静态方法比较(java/util/Comparator),java,android,gluon-mobile,Java,Android,Gluon Mobile,我正在Android设备上用Gluon对java.util中的列表进行排序。即使分配了8GB,应用程序也没有针对iOS进行编译(ram不足),但这是另一个问题 classpath'org.javafxports:jfxmobile-plugin:1.3.4' 编译'com.gloonhq:charm:4.3.2' jfxmobile版本='3.2.4' 导致碰撞的这一行: highscoreList.sort(比较(Highscore::getScore.reversed())//#89 我开始
java.util
中的列表进行排序。即使分配了8GB,应用程序也没有针对iOS进行编译(ram不足),但这是另一个问题
classpath'org.javafxports:jfxmobile-plugin:1.3.4'
编译'com.gloonhq:charm:4.3.2'
jfxmobile版本='3.2.4'
导致碰撞的这一行:
highscoreList.sort(比较(Highscore::getScore.reversed())//#89
我开始搜索,我发现了,所以我试着做以下事情,但它仍然崩溃了,现在我没有主意了:
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)
比较器比较器=新比较器(){
@凌驾
公共整数比较(高分高分1,高分高分2){
返回highscore1.getScore()-highscore2.getScore();
}
};
highscoreList.sort(比较器)//#97
03-22 11:30:48.836 16547 16570 E AndroidRuntime:java.lang.NoSuchMethodError:Ljava/util/List类中没有接口方法排序(Ljava/util/Comparator;)V;或者它的超类(声明'java.util.List'出现在/system/framework/core libart.jar中)
03-22 11:30:48.836 16547 16570 E AndroidRuntime:com.kaufland.pacman.HighscoreUtil.readHighscoreList(HighscoreUtil.java:97)
和都是在API级别24中添加的,您的设备可能运行的API级别较低
从API级别1开始,您可能会有更好的运气。仅供参考。我在使用集合时遇到此错误 我调用了一个函数。此函数尝试调用需要API级别24的函数 如果必须使用较低的API级别,只需使用重载函数并传递适当的比较器。
Collections.sort(highscoreList,(highscore1,highscore2)->highscore2.getScore()-highscore1.getScore())代码>解决了问题,谢谢!
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)