Yesterday I tried to upgrade from version 3.3.2.Final-SNAPSHOT to the latest version. However, it does not work on Android due to the following error:
- / AndroidRuntime (720): FATAL EXCEPTION: main E / AndroidRuntime (720): java.lang.NoClassDefFoundError: java.util.concurrent.LinkedTransferQueue E / AndroidRuntime (720): at org.jboss.netty.util.internal.QueueFactory. createQueue (QueueFactory.java:48)
It turns out that on Android (this is 2.3), the DetecationUtil.javaVersion () function returns 7, since the Deflater class contains the SYNC_FLUSH field. Below are all the Deflater.getDeclaredFields () fields.
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? (...). IF android - , , , Android.
- int javaVersion0() DetectionUtil:
try {
Class.forName("android.app.Application");
return 5;
} catch (ClassNotFoundException e) {
}
/