【问题标题】:No cached version of com.android.tools.build:gradle:2.3.3 and commons-logging:commons-logging:1.1.1 available for offline mode没有缓存版本的 com.android.tools.build:gradle:2.3.3 和 commons-logging:commons-logging:1.1.1 可用于离线模式
【发布时间】:2018-03-15 04:23:44
【问题描述】:

因此,我的 gradle 设置是:

我已经尝试将 gradle 构建工具版本降级到 2.3.2,尝试使用脱机检查和未检查以及默认 gradle 包装器和我的本地 gradle 安装。似乎没有任何效果。项目上的 make 成功运行,但 deploying 失败并出现以下错误(详细):

错误:Gradle:配置根项目“Project_Name”时出现问题。
无法解析配置“:classpath”的所有依赖项。
无法解析 com.android.tools.build:gradle:2.3.3。
要求:
项目:
没有可用于离线模式的 com.android.tools.build:gradle:2.3.3 缓存版本。
无法解析 commons-logging:commons-logging:1.1.1。
要求:
项目:> com.jfrog.bintray.gradle:gradle-bintray-plugin:1.2 > org.codehaus.groovy.modules.http-builder:http-builder:0.7.2 > org.apache.httpcomponents:httpclient:4.2.1
项目:> com.jfrog.bintray.gradle:gradle-bintray-plugin:1.2 > org.codehaus.groovy.modules.http-builder:http-builder:0.7.2 > net.sf.json-lib:json-lib :2.3
项目:> com.jfrog.bintray.gradle:gradle-bintray-plugin:1.2 > org.codehaus.groovy.modules.http-builder:http-builder:0.7.2 > net.sf.json-lib:json-lib :2.3 > commons-beanutils:commons-beanutils:1.8.0
没有缓存版本的 commons-logging:commons-logging:1.1.1 可用于离线模式。

令人惊讶的是,它上次部署成功,那肯定是几周前。我没有做任何配置更改,也没有对 Android Studio 或相关组件进行任何更新。所以我不知道为什么这个错误在部署时突然出现。

编辑 1:我不得不提一下,即使 SO 上存在这样的问题,那里提到的解决方案都没有解决这个问题。他们都建议禁用离线工作,但在我的项目中从未启用它。

编辑 2:添加 gradle 文件:

  1. 项目 gradle 文件:

  2. 应用程序模块 gradle 文件: App module gradle file

【问题讨论】:

  • 您似乎正在离线工作。您必须至少下载一次才能工作

标签: android android-studio android-gradle-plugin build.gradle gradle-plugin


【解决方案1】:

听起来像是传递依赖问题。首先你的目标是奥利奥吗?如果是这样,请确保在 build.gradle 文件中包含新的 google/maven 存储库指针。

如果没有,或者如果您已经这样做了,请尝试包含 bintry-plugin 所需的 commons-logging 1.1.1 文件。

黄色中列出的任何依赖项是您的吗?可能只是缺少需要包含或排除的传递依赖项。

还要确保您有正确的 gradle repos 设置来拉取 2.3.2。您能否分享您的项目 gradle 文件以及您的 gradle.properties 和您的 settings.gradle 以及您正在使用的任何其他适用的 gradle 文件。我相信我们可以让你重新振作起来。

解决依赖关系很痛苦,但如果您执行 bash gradlew assembleRelease --debug 并查看问题首先出现的位置/方式,通常可以找到它。

【讨论】:

  • 好吧,我的 compileSdk 版本是 25。所以我还没有针对 Oreo。如何手动包含 commons-logging 1.1.1 文件。我的意思是,我应该在哪里下载它?
  • // mvnrepository.com/artifact/commons-logging/commons-logging 编译组:'commons-logging',名称:'commons-logging',版本:'1.1.1'
  • 谢谢。虽然我一直在寻找我应该将它下载到哪里,我的意思是,它应该在 maven_home 目录中吗?另外,我刚刚检查了 commons jar 不是我的依赖项,而是我拥有的一些依赖项的依赖项。所以我应该没有理由必须下载它,同时考虑到它在最后一次构建之前一切正常。
  • 是的,这很不寻常。您是否尝试过还原更改以查看它是否再次构建?对我来说,传递依赖似乎被忽略了。
  • 刚刚清理了项目并再次构建。它构建和部署成功!有没有搞错?虽然在那之后,我在运行应用程序时遇到了另一个奇怪的意外错误,stackoverflow.com/questions/46554483/…,你能看看你是否遇到过这个问题?无论如何,非常感谢您的帮助。
猜你喜欢
  • 2017-08-19
  • 1970-01-01
  • 2017-03-11
  • 2014-05-01
  • 2016-09-21
  • 2020-09-13
  • 1970-01-01
  • 2018-01-08
  • 1970-01-01
相关资源
最近更新 更多