Android上的TrueZip,UnsupportedCharsetException:IBM437

时间:2013-08-26 10:14:43

标签: java android truezip

我正在尝试使用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个文件。

1 个答案:

答案 0 :(得分:3)

Android平台上的TrueZIP通常不受支持,因为该平台错过或曾经错过了一些必要的类,例如java.util.ServiceLoader。关于缺少的IBM437字符集:提供程序实际上捆绑到TrueZIP中,但是需要ServiceLoader类来查找和加载它。您可以尝试使用JarDriver(使用UTF-8而不是IBM437),但我担心您只会遇到类似的问题,因为TrueZIP依赖于ServiceLoader类的顺序很多加载内核,驱动程序,扩展等。