我正在尝试使用TrueZip 7.7.3在Android 4.3模拟器上打开zip文件
行
TArchiveDetector ad = new TArchiveDetector("myext", new ZipDriver(IOPoolLocator.SINGLETON));
引发java.lang.ExceptionInInitializerError
引起的
java.nio.charset.UnsupportedCharsetException: IBM437
at java.nio.charset.Charset.forName(Charset.java:303)
at de.schlichtherle.truezip.fs.archive.zip.ZipDriver.<clinit>(ZipDriver.java:75)
... 16 more
是否可以在Android上使用TrueZip?我需要它,因为Android上的java.util.ZipFile是旧的,无法处理zip存档中超过65536个文件。
答案 0 :(得分:3)
Android平台上的TrueZIP通常不受支持,因为该平台错过或曾经错过了一些必要的类,例如java.util.ServiceLoader
。关于缺少的IBM437字符集:提供程序实际上捆绑到TrueZIP中,但是需要ServiceLoader
类来查找和加载它。您可以尝试使用JarDriver
(使用UTF-8而不是IBM437),但我担心您只会遇到类似的问题,因为TrueZIP依赖于ServiceLoader
类的顺序很多加载内核,驱动程序,扩展等。