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

时间:2013-10-22 18:57:10

标签: android eclipse github adt

在提出这个问题之前,让我解释一下我所做的事情让我陷入了这个问题。

  1. 我在github创建了一个帐户,并创建了一个名为Android的存储库。
  2. 然后我在我的Windows 7中安装了github client
  3. 然后我打开了这个客户端,提供了我的身份验证并将存储库克隆到本地目录C:\Users\Aniket\Documents\GitHub\Android(此文件夹中包含.git文件夹。)
  4. 然后我去了我的Eclipse ADT并按照here所述安装了 EGit 插件。我也是
  5. 然后在Eclipse中我右键单击我的项目TicTacToe转到Team->Share Project并提供我的存储库路径,即C:\Users\Aniket\Documents\GitHub\Android
  6. 我的项目已添加到本地存储库,在我的github客户端中,它向我展示了在github网站上的实际存储库中提交文件的所有选项。
  7. 但我的项目突然显示错误,红色'!'登录它。

    说明 - > 存档所需的库:'C:/ Users / Aniket / AndroidWorkspace / TicTacToe 项目'TicTacToe'中的/libs/android-support-v4.jar'无法读取或不是有效的ZIP文件

    资源 - >井字游戏

    路径位置 - >构建路径

    类型 - >构建路径问题

  8. 注意:Error是Eclipse上错误控制台中显示的单行。我只是将其分开以便于阅读。

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

    之前有没有人遇到过这种情况。解决方案或解决方法是什么?我用谷歌搜索,前几个链接表明它是一个Eclipse bug。请建议如何将我的项目恢复到可执行状态?

18 个答案:

答案 0 :(得分:49)

这是一个Eclipse bug。我曾多次遇到过类似的问题。关闭和重新开放项目有时会工作。如果它不起作用,请尝试重新启动Eclipse。

答案 1 :(得分:22)

我见过同样的问题。我删除了那个jar文件,然后右键单击该项目,选择maven,然后执行“更新项目...”。罐子再次下载,问题就消失了。

答案 2 :(得分:10)

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

右键单击项目并打开 - >项目项目属性 - > java构建路径 - > Android私有库

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

jar文件可能隐藏了一些时间 在窗口中打开libs文件夹并检查是否存在任何隐藏文件 组织 - >文件夹和搜索选项 - >查看 - >检查显示隐藏文件 并且删除隐藏的jar文件,如果src和包中存在隐藏的java fies,则相同的cass 删除(如果有的话)

答案 3 :(得分:6)

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

答案 4 :(得分:1)

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

 jar tf myjar.jar

应列出内容。

答案 5 :(得分:1)

我会说,有些答案可能适用于某些情况,但对我来说,有必要加倍努力。因此,我将尝试总结可以做的事情:

  1. 验证罐子是否完整:

    jar tf myjar.jar

  2. 通过右键单击项目重新启动eclipse并更新项目设置 - > Maven - >更新项目

  3. 对我有用的选项是在工作区文件夹中导航,然后删除文件:

    .metadata/.plugins/org.eclipse.jdt.core/invalidArchivesCache .metadata/.plugins/org.eclipse.jdt.core/nonChainingJarsCache

  4. 之后重启eclipse并重建项目。

答案 6 :(得分:1)

我在Eclipse Mars中遇到了同样的问题。我从[https://oss.jfrog.org/webapp/#/artifacts/browse/tree/General/repo/org/ethereum/ethereumj-core/1.0.0-SNAPSHOT][1]下载了这些罐子 并将其替换为目录。

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

答案 7 :(得分:1)

对我有用的解决方案: 转到*.classpath并删除该行: <classpathentry kind="lib" path="the_problematic_class.java"/>

答案 8 :(得分:1)

在我的情况下重启Eclipse并没有解决问题。我重新启动了计算机并在eclipse中执行了Project -> Clean

答案 9 :(得分:1)

在我的情况下,我尝试了所有建议的提示,但错误仍然存​​在。我用更新的版本解决了更改版本并在pom.xml中编写它。在这之后一切都好了。

答案 10 :(得分:1)

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

答案 11 :(得分:0)

我发现在任何地方都没有重复,并尝试重新启动eclipse,重建项目。我只收到了一个图书馆的错误。所以我只是尝试将jar文件从ksoap2-android-assembly-2.5.8-jar-with-dependencies.jar重命名为ksoap2-2.5.8.jar

因此,如果上述任何问题都无法解决,您也可以尝试这个问题

答案 12 :(得分:0)

在我的情况下,java安装不正确。所以,我卸载了Java并重新安装了新版本。现在,它有效。

答案 13 :(得分:0)

对我们来说,问题似乎是.jar文件的大小。我建议做以下测试,看看是否是这种情况或者至少要排除它。首先看看Eclipse项目中的其他jar并将它们与有问题的jar进行比较。它比其他人大吗?如果是这样,请尝试以下解决方法。否则,这个答案可能对你没有帮助。在开始之前,请使用以下命令行命令将Windows配置为将.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

可选:简单测试

在尝试解决方法之前,这里有一个测试,看看它是否确实是正在绊倒你的jar文件大小。

  1. 创建一个大型.jar,其中包含不在您有问题的jar中的随机.class文件。您可以通过创建一个文件夹,压缩文件,并将.zip扩展名重命名为.jar来完成此操作。 Windows可能会警告您更改扩展名。忽略这个。确保文件夹中有足够的文件,使其比有问题的jar大一些。
  2. 尝试导入这个人工创建的jar。如果失败并出现相同的错误,那么大小可能就是问题。
  3. 解决方法

    如果确实是大小问题,您可能通过上面的可选简单测试确定了问题,您可以尝试以下解决方法。

    1. 解压缩.jar文件。您应该可以在Windows
    2. 中轻松完成此操作
    3. 将您从步骤1获得的文件夹拆分为较小的子文件夹。它可能只是两个或更多文件夹,具体取决于原始文件的大小。您希望文件夹小于一些现有的“好”罐子,这样尺寸就不会成为问题。确保在执行此操作时保持包​​装结构完整。
    4. 压缩您在步骤2中创建的所有文件夹,并将.zip重命名为.jar。
    5. 分别从步骤3导入所有.jars。
    6. 这些步骤可能有点不清楚,所以这是一个例子。想象一下你的jar文件名为mylib.jar。您将其解压缩到名为mylib的文件夹。在里面,假设有三个子文件夹叫做package1,package2和package3。创建3个名为mylib1,mylib2和mylib3的文件夹,分别放入package1,package2和package3。然后将它们压缩并将扩展名重命名为.jar。然后,您将导入mylib1.jar,mylib2.jar和mylib3.jar。

答案 14 :(得分:0)

对于Java Web应用程序,web.xml在项目中添加为jar。在项目资源管理器中,尝试在jar图标中找到web.xml并从项目中删除。错误将消失!!

答案 15 :(得分:0)

尽管在网上寻找解决方案,但我还是被这个问题困扰了好几天。我首先将项目移至Netbeans,并且一切正常。然后,我返回到eclipse-> properties-> java compile-> Building并将“ Incompartible build path”选项从错误更改为警告,然后进行了maven更新,它起作用了。

答案 16 :(得分:0)

我意识到这是一个古老的问题,但是如果这些方法都不适合遇到此问题的其他人,我还有另一个解决方案。 我遇到了同样的问题,花了很多时间试图弄清楚,结果发现我的Eclipse classpath / buildpath中有一个.json文件,它不喜欢那样,因此无法编译。 因此,请检查并确保您的构建路径中没有文本文件或json文件等。

答案 17 :(得分:0)

我不小心将web.xml放入了构建路径:x

相关问题