【问题标题】:Upgrading to gradle 2.1.0 causes – Could not expand ZIP error升级到 gradle 2.1.0 导致 - 无法展开 ZIP 错误
【发布时间】:2016-05-05 18:53:54
【问题描述】:

我最近将我的 Android 项目的 gradle 插件从 2.1.0-alpha4 更新为 2.1.0。但现在我看到我所有的构建都失败了,并显示如下消息:

Error:Execution failed for task ':App:compileUpdemoDebugJavaWithJavac'.
> Could not expand ZIP '/Users/admin/work/app/libs/lib-android-0.11.0.jar'.

如果我将我的 gradle 插件恢复到之前的 2.1.0-alpha4 版本,请设置环境变量 ANDROID_DAILY_OVERRIDE,然后构建我的项目 — 一切正常。

还有其他人遇到过这个问题吗?我相信这与最新的插件有关,因此,人们可能刚刚开始偶然发现这个问题。

任何可能的解决方案? (我知道一些解决方法,比如提取 JAR 并让 gradle 跳过 JAR 提取过程,但这听起来确实不值得!)

【问题讨论】:

  • 据我所知,这可能是 jar 文件的权限问题。也许您可以尝试此答案中的建议stackoverflow.com/a/16946902/1914223
  • 不幸的是,我无法放置方法中使用的FilePermissions.chmodRecursively(dir, 0200)。 Gradle 说不存在像 FilePermissions 这样的类。

标签: android android-gradle-plugin


【解决方案1】:

不幸的是,这里发布的大多数答案都没有奏效。尽管从逻辑上讲,@Kowshick 的答案似乎解决了正确的问题——即目录权限有问题。但是,授予777 访问权限并不是正确的做法,而我在开发文件夹、sdk 文件夹、构建文件夹中的默认755 应该可以正常工作。但它没有。 :(

最终,我意识到只有 3 种方法可以解决这个问题:

  1. 等待 Google 发布其构建工具的更新,这将更新 gradle 插件,希望解决此问题。
  2. 当您等待上述情况发生时,唯一对我有用的事情是将 gradle 插件降级到版本 2.0.0。它通过降级工作的事实表明,真正的问题不在于我拥有的目录权限。
  3. 最后,您可以做一件相当令人沮丧的事情 - 在您的系统上创建一个单独的用户,然后从头开始设置您的项目 - 下载 Android Studio、SDK 和您的工作区。它很有可能会起作用,但这是一种可怕的工作方式。最重要的是,如果您没有支持快速用户切换的操作系统,您只会感到痛苦。

在我的情况下,我使用选项 2 幸存了一段时间,我很幸运我的硬盘驱动器升级到了 SSD,所以我最终也选择了选项 3(因为我进行了全新安装SSD 上的操作系统)。

其他信息:
操作系统 — OS X (El Capitan)
安卓工作室——2.1.0

【讨论】:

  • 将 gradle 版本降级到 2.0.0 也对我有用。非常感谢
【解决方案2】:

按照以下步骤在您的 android studio 中设置自动 gradle 同步。

文件 -> 设置 -> 构建、执行、部署 ->构建工具 -> gradle -> 勾选 Use Default gradle wrapper(recommended) 单选按钮。

还请按照以下步骤重新启动您的 android studio 以防止无效的缓存重新启动。

文件 > 使缓存无效/重新启动(您也可以手动删除 ~/Library/Caches/{yourIDEName} 中的缓存并重新启动 IDE)

然后保存设置并重建您的项目。

【讨论】:

  • 通常,这就像我遇到古怪的 Android Studio 问题时做的第一件事。但即使我使用gradle assemble 从命令行构建我的项目时,我也遇到了这个问题。所以,这几乎暗示问题不在于 AS,而在于 Gradle 插件。
【解决方案3】:

据我所知,您的项目位于 admin 目录中 /Users/admin/work/app/libs/lib-android-0.11.0.jar.

1) 您可以尝试将项目路径移动到某个用户目录,例如 /home/username/

2) 或者您可以通过使用为您的项目路径授予写入权限

sudo chmod 777 -R /Users/admin/work/app/

猜猜这会有所帮助。

【讨论】:

  • 我所有的目录——Android Studio、SDK 和工作项目都在/Users/username/ 下。授予777 的权限没有任何意义。默认的755 应该可以正常工作。此外,这个项目是一个2年的项目。所以突然之间,权限出了点问题听起来不对。
【解决方案4】:

试试这个:

1.转到帮助

2.检查更新

点击更新并重启,更新到 Android Studio 2.1.1。

【讨论】:

  • 是的 - 这就是它最终归结为的原因。与此同时,我只是降级了我的 gradle 插件:/
【解决方案5】:

在使用 Android Studio 2.1.3 的新 PC 上打开使用 Studio 1.x 创建的现有项目后,我遇到了同样的问题。 我必须在项目设置中将 Gradle 版本降级到 2.2.1 并将 Android 插件版本降级到 1.5.0 才能恢复成功的 apk 构建。

【讨论】:

    【解决方案6】:

    如果您在 Windows 上工作:

    尝试手动解压缩您的 jar 文件。在大多数情况下,这些类不区分大小写,因此 Windows 系统会出现问题。

    如果您使用 Windows,您可以在此票证中获得更多信息:

    https://code.google.com/p/android/issues/detail?id=207862

    【讨论】:

      【解决方案7】:

      清除构建目录 - 如果您使用 sudo 或以其他用户身份运行 gradle,构建目录可能有不同的用途,因此无法提取 aar。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2021-03-21
        • 2021-03-07
        • 2011-06-23
        • 2013-07-12
        • 1970-01-01
        • 2023-02-07
        • 1970-01-01
        相关资源
        最近更新 更多