gradle失败,从二进制存储错误中读取数据时出现问题

时间:2015-04-24 08:21:10

标签: android gradle

我有一个运行测试的gradle文件。它没有构建任何东西。它只是一个解压缩任务,它将gradle配置中的所有jar提取到特定目录中,然后运行Test类型的任务。此测试任务将testClasses目录指向上一个复制任务将配置解压缩到的位置。

我的构建失败并显示错误消息:从二进制存储区读取数据时出现问题

当我运行'gradle dependencies'它没有显示任何错误/警告 当我单独运行复制任务时,它运行得很好。 只有当我运行它失败时才会出错:

> Could not resolve all dependencies for configuration ':testConfig'.$
   > Problems reading data from Binary store in /tmp/gradle8793563212642185736.bin (exist: false)$

我看到文件/tmp/gradle8793563212642185736.bin不存在。这可能是什么原因?

6 个答案:

答案 0 :(得分:2)

就我而言,它发生在 Flutter 开发中。显然,这不是一个实际问题,也没有神奇的修复方法。使用“Flutter clean”清理构建文件并重新启动命令行执行器窗口解决了该问题。

答案 1 :(得分:1)

这个解决方案在我的颤振项目中有效。我通过进行这些更改解决了这个问题:

  1. 在android级别的build.gradle文件中,将classpath 'com.android.tools.build:gradle:3.5.4'替换为classpath 'com.android.tools.build:gradle:4.0.1'(基本上是将版本从3.5.4升级到4.0.1)
  2. 在 gradle-wrapper.properties 文件中,将 distributionUrl=https\://services.gradle.org/distributions/gradle-5.6.2-all.zip 替换为 distributionUrl=https\://services.gradle.org/distributions/gradle-6.1.1-all.zip(从 5.6.2 升级到 6.1.1)

如果您已将 classpath 'com.google.gms:google-services:4.3.3' 添加到 android 级别的 build.gradle 文件,请将其也替换为 classpath 'com.google.gms:google-services:4.3.5'(从 4.3.3 升级到 4.3.5)

答案 2 :(得分:1)

我之前使用的是 5.x 版,然后升级到 6.0.1 并解决了该问题。 这是你可以升级的方式

cd android
./gradlew clean
./gradlew wrapper --gradle-version 6.0.1
./gradlew -v   # to download the new version
cd ..
flutter clean
flutter run   # might take 15 - 20mins for the first time

答案 3 :(得分:0)

在我的情况下,设置org.gradle.parallel=false标志修复了问题,但它不是我的项目的解决方案,标志将CI构建时间从大约15分钟增加到大约45分钟。

答案 4 :(得分:0)

首先将Gradle升级到最新版本。

报告给GitHub的二进制商店问题通常是立即解决的,尤其是当它们包含Minimal, Reproducible Example时。

如果升级无法正常进行,则在禁用Performance options的情况下重新运行任务会很有用:

  • --no-parallel
  • --no-configure-on-demand

下一步,请找到一个existing issue或打开一个新的,以便可以在以后的版本中对其进行修复。这些都是有用的:

  • 最小的,可复制的示例
  • Build Scan
  • 引起问题的最小变化(例如,适用于5.5,但不适用于5.6)

答案 5 :(得分:0)

解决这个问题主要有几个步骤。

  1. 转到 gradle.properties 并设置 org.gradle.parallel=false 并同步。确保您的同步 gradle 离线选项处于关闭状态
  2. 使用此选项开始构建。如果是大型项目设置 org.gradle.parallel=false 将需要很长时间。
  3. 取消构建重复步骤设置 org.gradle.parallel=true

也不要开启离线构建