Java Proguard和int比较器

Java Proguard和int比较器,java,proguard,Java,Proguard,我有一个实现Comparator的类,它重写了compare函数: import java.util.Comparator; public class ScoreComparator implements Comparator<Score> { @Override public int compare(Score s1, Score s2) { return Integer.compare(s2.score, s1.score);

我有一个实现Comparator的类,它重写了compare函数:

import java.util.Comparator;

public class ScoreComparator implements Comparator<Score> 
{
    @Override
    public int compare(Score s1, Score s2) 
    {
        return Integer.compare(s2.score, s1.score);
    }
}
import java.util.Comparator;
公共类ScoreComparator实现了Comparator
{
@凌驾
公共整数比较(分数s1,分数s2)
{
返回整数。比较(s2.score,s1.score);
}
}
当我使用proguard编译时,我得到以下错误:

can't find referenced method 'int compare(int,int)' in class java.lang.Integer You should check if you need to specify additional program jars. there were 1 unresolved references to program class members. Your input classes appear to be inconsistent. You may need to recompile them and try again. Alternatively, you may have to specify the option '-dontskipnonpubliclibraryclassmembers'. 在类java.lang.Integer中找不到引用的方法“int compare(int,int)” 您应该检查是否需要指定其他程序JAR。 有1个对程序类成员的未解析引用。 您的输入类似乎不一致。 您可能需要重新编译它们并重试。 或者,您可能必须指定该选项 “-dontskipnonpubliclibraryclassmembers”。 所以我显然增加了这个选项。然而,我得到了同样的错误

那么,应该向proguard配置中添加哪些额外选项来消除此错误呢?

您的代码使用的是Integer#compare(int,int),它只在JDK 1.7中存在。因此,您还应该确保指定给ProGuard的Java运行时jar是JDK1.7中的jar


注意:您似乎将Java运行时jar指定为程序jar(-injar)。您可能希望将其指定为库jar(-libraryjars),这样它就不会成为应用程序的一部分。

您不了解错误的哪一部分?给我们看看你的代码。这就是我得到的错误。。。int比较(int,int)您的proguard配置是什么?在我的测试中,这是可以的。