【发布时间】:2012-04-25 08:17:57
【问题描述】:
昨天我尝试从 3.3.2.Final-SNAPSHOT 升级到最新版本。但是,由于以下错误,它在 Android 上失败:
- /AndroidRuntime(720):致命异常:主要 E/AndroidRuntime(720):java.lang.NoClassDefFoundError:java.util.concurrent.LinkedTransferQueue E/AndroidRuntime(720):在 org.jboss.netty.util.internal.QueueFactory.createQueue(QueueFactory.java:48)
事实证明,在 Android(这是 2.3)上,DetectationUtil.javaVersion() 返回 7,因为 Deflater 类包含字段 SYNC_FLUSH。以下是所有字段 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,公共静态最终 int java.util.zip.Deflater.DEFAULT_COMPRESSION,公共静态最终 int java.util.zip.Deflater.DEFAULT_STRATEGY,公共静态最终 int java.util.zip.Deflater.DEFLATED,公共静态最终 int java.util。 zip.Deflater.FILTERED,私有静态最终 int java.util.zip.Deflater.FINISH,公共静态最终 int java.util.zip.Deflater.FULL_FLUSH,公共静态最终 int java.util.zip.Deflater.HUFFMAN_ONLY,公共静态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,私有 [B java.util.zip.Deflater.inputBuffer,私有布尔 java.util.zip.Deflater.finished,私有长 java.util.zip.Deflater.streamHandle,私有 int java。 util.zip.Deflater.inLength,私有 int java.util.zip.Deflater.inRead,私有 int java.util.zip.Deflater.compressLevel,私有 int java.util.zip.Deflater.strategy,私有 int java.util。 zip.Deflater.flushParm]
有没有其他方法可以解决这个问题,使其可以在 Android 平台上运行?我还没有调查过(还......)。如果 android 是一个应该支持的平台,也许我们还可以检查 android 特定的类?
这样的东西可以添加到DetectionUtil中的int javaVersion0()中:
try {
Class.forName("android.app.Application");
return 5;
} catch (ClassNotFoundException e) {
//Ignore
}
亲切的问候 /Johan Rask
【问题讨论】:
标签: netty