无法读取所需库的存档或不是有效的ZIP文件

在解决问题之前,让我解释一下我所做的是如何解决问题的。

  1. 我在github上创build了一个帐户,并创build了一个名为Android的仓库。
  2. 然后我在我的Windows 7中安装了github客户端 。
  3. 然后我打开这个客户端,提供我的身份validation,并将存储C:\Users\Aniket\Documents\GitHub\Android到本地目录C:\Users\Aniket\Documents\GitHub\Android (该文件夹中包含.git文件夹)。
  4. 然后我去了我的Eclipse ADT并安装了EGit插件,如下所述。 我也是
  5. 然后在Eclipse中,我右键点击我的项目TicTacToe转到Team->Share Project并提供我的存储库path,即C:\Users\Aniket\Documents\GitHub\Android
  6. 我的项目被添加到本地存储库,并在我的github客户端,它显示我的所有选项提交github网站上的实际存储库中的文件。
  7. 但是我的项目突然出现了一个红色的“错误”! 在它上面签字。

    描述 – > 为需要的库存档:项目“TicTacToe”中的'C:/ Users / Aniket / AndroidWorkspace / TicTacToe /libs/android-support-v4.jar'不能被读取或不是有效的ZIP文件

    资源 – > TicTacToe

    path位置 – >build立path

    types – >构buildpath问题

注意:错误是在Eclipse的错误控制台中显示的一行。 我只是为了可读性而将其分开。

即使分离存储库后,它显示错误。

有没有人遇到过这种情况。 什么是解决scheme或解决方法? 我GOOGLE了,前几个链接暗示这是一个Eclipse错误。 请build议可以做些什么来使我的项目回到可执行状态?

Solutions Collecting From Web of "无法读取所需库的存档或不是有效的ZIP文件"

它可以是Eclipse的错误。 我几次遇到类似的问题。 closures和重新开放项目的工作有时。 如果它不起作用尝试重新启动Eclipse。

我见过同样的问题。 我删除了该jar文件,然后右键单击项目,selectmaven,并执行“更新项目…”。 jar子又被下载了,问题没有了。

还有其他的情况显示错误存档为所需的库

右键单击项目,然后打开 – >项目项目属性 – > java构buildpath – > Android私人库

如果有两个同名的jar文件,则从libs中删除一个。

jar文件可能会隐藏一段时间,然后打开你的libs文件夹在窗口中,并检查是否存在任何隐藏的文件组织 – >文件夹和search选项 – >查看 – >检查显示隐藏的文件和删除隐藏的jar文件 ,相同如果在src和包中存在隐藏的java fies,则删除cass

看起来每个人都有不同的故事讲述! 对我来说,我不得不从eclipse Markers选项卡中删除错误,然后再次清理项目。 在此之前,我按照@rachit的build议closures并重新开启了多次项目/日食,这对我不起作用。

在我的情况下,我从互联网下载项目,解压缩项目后,一些文件被阻止,只是解锁文件,然后再试,然后问题就解决了。

在我的情况下,我尝试了所有build议,但错误仍然存​​在。 我解决了更新的版本,并在pom.xml中写入。 之后,一切都好了。

在我的情况下重新启动Eclipse没有解决问题。 我重新启动电脑,并做了一个Project -> Clean在月食

可能是由于损坏的jar文件。 最好先检查一下,因为这是我的原因:

  jar tf myjar.jar 

应该列出里面的内容。

我在Eclipse Mars面临同样的问题。 我从[ https://oss.jfrog.org/webapp/#/artifacts/browse/tree/General/repo/org/ethereum/ethereumj-core/1.0.0-SNAPSHOT%5D%5B1%5D下载了jar子,并将其replace在目录中。

我在用C:\ Users {machineName} .m2 \ repository \ org \ ethereum \ ethereumj-core \ 1.0.0-SNAPSHOT \ ethereum-core-1.0.0-SNAPSHOT.jar添加ethereum.jar时遇到错误,我在这里添加了下载的jar(ethereum-core-1.0.0-SNAPSHOT.jar),问题解决了。

我发现没有重复的地方,并尝试重新启动日食,重build项目。 我只有一个库的错误。 所以我只是尝试将jar文件从ksoap2-android-assembly-2.5.8-jar-with-dependencies.jar重命名为ksoap2-2.5.8.jar

所以如果没有问题从上面解决,你也可以试试这个

一个解决scheme,为我工作:去*.classpath并删除行: <classpathentry kind="lib" path="the_problematic_class.java"/>

在我的情况下,Java安装不正确。 所以,我卸载了Java并重新安装了一个新版本。 现在,它的工作。

对我们来说,问题似乎是.jar文件的大小。 我会build议做下面的testing,看是否是这种情况,或至less排除。 首先看看你的Eclipse项目中的其他jar子,并将它们与问题jar子进行比较。 它比其他人大吗? 如果是这样,请尝试以下解决方法。 否则,这个答案可能不会帮助你。 开始之前,将Windowsconfiguration为使用以下命令行命令将.jar文件作为.zip文件处理:

assoc .jar=CompressedFolder (请参阅https://superuser.com/questions/121540/can-you-configure-windows-to-open-jar-files-like-zip-files-without-a-3rd-party-t

可选:一个简单的testing

在尝试这个解决方法之前,这里是一个testing,看看它是否真的是让你沮丧的jar文件大小。

  1. 创build一个大的.jar文件,其中不包含有问题的jar文件。 你可以通过制作一个文件夹来压缩文件,然后将.zip扩展名重命名为.jar。 Windows可能会警告您更改扩展名。 忽略这个。 确保文件夹中有足够的文件,以便它比有问题的jar大一些。
  2. 尝试导入这个人工创build的jar。 如果它失败了,同样的错误,那么大小可能是问题。

解决方法

如果这确实是问题的大小,那么您可以通过执行上面的可选简单testing来确定问题,您可以尝试以下解决方法。

  1. 解压缩.jar文件。 你应该可以在Windows中轻松完成这个任务
  2. 将您从步骤1获得的文件夹拆分为更小的子文件夹。 这可能只是两个文件夹,或更多,取决于原来的大小。 你想要的文件夹比现有的“好”瓶子小一些,所以尺寸不会是一个问题。 当你这样做的时候,一定要保持包装的结构完整。
  3. 将您在步骤2中创build的所有文件夹拉上,然后将.zip重命名为.jar。
  4. 从步骤3单独导入所有.jars。

步骤可能有点不清楚,所以这里是一个例子。 想象一下你的jar文件被称为mylib.jar。 您将其解压缩到一个名为mylib的文件夹中。 在里面,假设有三个子文件夹叫做package1,package2和package3。 创build3个名为mylib1,mylib2和mylib3的文件夹,分别放在package1,package2和package3中。 然后将其压缩并将扩展名重命名为.jar。 然后,您将导入mylib1.jar,mylib2.jar和mylib3.jar。

对于Java Web应用程序,web.xml作为jar添加到项目中。 在项目浏览器中,尝试在jar图标中findweb.xml并从项目中移除。 错误将消失!