昨天我尝试从3.3.2.Final-SNAPSHOT升级到最新版本。但是,由于以下错误,它在Android上失败:
事实证明,在Android(这是2.3)上,由于Deflater类包含字段SYNC_FLUSH,因此DetecationUtil.javaVersion()返回7。以下是所有字段Deflater.getDeclaredFields()。
04-25 08:08:51.305:I / System.out(25674):[public static final int java.util.zip.Deflater.BEST_COMPRESSION,public static final int java.util.zip.Deflater.BEST_SPEED, public static final int java.util.zip.Deflater.DEFAULT_COMPRESSION,public static final int java.util.zip.Deflater.DEFAULT_STRATEGY,public static final int java.util.zip.Deflater.DEFLATED,public static final int java.util。 zip.Deflater.FILTERED,private static final int java.util.zip.Deflater.FINISH,public static final int java.util.zip.Deflater.FULL_FLUSH,public static final int java.util.zip.Deflater.HUFFMAN_ONLY,public static final int java.util.zip.Deflater.NO_COMPRESSION,public static final int java.util.zip.Deflater.NO_FLUSH,private static final [B java.util.zip.Deflater.STUB_INPUT_BUFFER,public static final int java.util.zip .Deflater.SYNC_FLUSH,private [B java.util.zip.Deflater.inputBuffer,private boolean java.util.zip.Deflater.finished,private long java.util.zip.Deflater.streamHandle,private int java。 util.zip.Deflater.inLength,private int java.util.zip.Deflater.inRead,private int java.util.zip.Deflater.compressLevel,private int java.util.zip.Deflater.strategy,private int java.util。 zip.Deflater.flushParm]
有没有其他方法可以解决这个问题,以便它可以在Android平台上运行?我没有调查过(但......)。如果android是一个应该支持的平台,也许我们也可以检查特定于Android的类?
这样的东西可以添加到DetectionUtil中的int javaVersion0():
try {
Class.forName("android.app.Application");
return 5;
} catch (ClassNotFoundException e) {
//Ignore
}
亲切的问候/约翰拉斯克
答案 0 :(得分:2)