Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/191.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java ZipInputStream(BufferedInputStream,字符集)未定义_Java_Android_Zipinputstream - Fatal编程技术网

Java ZipInputStream(BufferedInputStream,字符集)未定义

Java ZipInputStream(BufferedInputStream,字符集)未定义,java,android,zipinputstream,Java,Android,Zipinputstream,我确实提出了一个问题,我看到存在一个ZipInputStream的构造函数,名为: ZipInputStream(BufferedInputStream,Charset) 但调试器向我抛出了错误: ZipInputStream(BufferedInputStream,Charset)未定义 给我一个建议: 删除参数以匹配ZipInputStream(InputStream) 我已经安装了最新版本和JRE 7,但仍然有相同的错误 最后我在这里解决了这个问题: 如果你编写了一个android应用程序

我确实提出了一个问题,我看到存在一个ZipInputStream的构造函数,名为:

ZipInputStream(BufferedInputStream,Charset)

但调试器向我抛出了错误:

ZipInputStream(BufferedInputStream,Charset)未定义

给我一个建议:

删除参数以匹配ZipInputStream(InputStream)

我已经安装了最新版本和JRE 7,但仍然有相同的错误

最后我在这里解决了这个问题:


如果你编写了一个android应用程序,那么你正在使用android库。没有签名为ZipInputStream(InputStream,Charset)的公共构造函数。你在电脑上安装什么JDK或JRE并不重要,因为你的应用程序不会在电脑上运行(或在电脑上运行,而是在模拟器上运行)。

显然,Android API中没有其他选择。但是,如果您可以安排ZIP文件设置了“语言编码标志(EFS)”位,那么最新版本的android应该尊重它,并将条目名称作为UTF-8编码的线程

注意,第二个
ZipInputStream
构造函数被添加到Java7中的(真实的)Java类库中,Android API基于Java6

参考:


看起来您导入了不同的类。请确保您已经导入了
java.nio.charset.charset
,是否还有其他选择?我的zip文件中有一些特殊字符。@Ernandovale:我对java/android和字符集没有太多经验,但看起来使用ZipInputStream作为构造函数参数就可以做到这一点。@fabian-我怀疑这一点。字符集指定的是ZipEntry名称的编码,而不是文件本身。最后,我使用外部库解决了如何使用7zip或其他压缩程序将EFS标志设置为zip文件的问题?我已经搜索过了,但是没有找到很多。谢谢,我终于在这里解决了我的问题