1

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

4

1 回答 1

3

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

于 2013-08-27T08:02:07.957 回答