繁体   English   中英

无法解析“:app@debug/compileClasspath”的依赖:无法解析

[英]Unable to resolve dependency for ':app@debug/compileClasspath': Could not resolve

新安装的Android Studio 3.1.3在创建新项目并首次编译时出现奇怪的依赖项错误。

一个类似的问题并没有帮助解决问题。

事件日志:

Unable to resolve dependency for ':app@debug/compileClasspath': Could not resolve com.android.support:appcompat-v7:28.0.0-alpha3.
Open File
Show Details


Unable to resolve dependency for ':app@debug/compileClasspath': Could not resolve com.android.support.constraint:constraint-layout:1.1.2.
Open File
Show Details


Unable to resolve dependency for ':app@debugAndroidTest/compileClasspath': Could not resolve com.android.support:appcompat-v7:28.0.0-alpha3.
Open File
Show Details


Unable to resolve dependency for ':app@debugAndroidTest/compileClasspath': Could not resolve com.android.support.constraint:constraint-layout:1.1.2.
Open File
Show Details


Unable to resolve dependency for ':app@debugUnitTest/compileClasspath': Could not resolve com.android.support:appcompat-v7:28.0.0-alpha3.
Open File
Show Details


Unable to resolve dependency for ':app@debugUnitTest/compileClasspath': Could not resolve com.android.support.constraint:constraint-layout:1.1.2.
Open File
Show Details


Unable to resolve dependency for ':app@release/compileClasspath': Could not resolve com.android.support:appcompat-v7:28.0.0-alpha3.
Open File
Show Details


Unable to resolve dependency for ':app@release/compileClasspath': Could not resolve com.android.support.constraint:constraint-layout:1.1.2.
Open File
Show Details


Unable to resolve dependency for ':app@releaseUnitTest/compileClasspath': Could not resolve com.android.support:appcompat-v7:28.0.0-alpha3.
Open File
Show Details


Unable to resolve dependency for ':app@releaseUnitTest/compileClasspath': Could not resolve com.android.support.constraint:constraint-layout:1.1.2.
Open File
Show Details

截屏:

测试项目

这个问题在我身上发生过几次,强制使用 https 或 http也没有解决

您可能正在导入Application而不是Module 好吧,您也可以在模块的 gradle 中更改它。

改变

apply plugin: 'com.android.application'

apply plugin: 'com.android.library'

您还需要从 gradle 中删除applicationId

我刚刚想出了如何删除此 gradle 错误,请按照以下步骤操作。

  1. 转到“文件”。
  2. 单击使缓存无效/重新启动。
  3. 再次单击无效缓存/重新启动(在对话窗口中)。

让 gradle 不受任何干扰地构建。

谢谢你! 问候,希望这会有所帮助。

我认为问题来自以下方面:与您的互联网连接不可用,因此 Android Studio 要求您启用“离线工作”,而您刚刚启用它

要解决此问题:

  • 文件
  • 设置
  • 构建、执行、部署
  • 摇篮
  • 取消选中离线工作

为什么取消选中离线工作可以解决问题,因为在 Gradle 中有时需要更新一些依赖项(包含“+”的依赖项),因此需要互联网连接。

  1. 尝试“文件”->“使缓存无效/重新启动...”
  2. 尝试清理项目根目录下的.gradle.idea目录。
  3. 尝试添加 Google Maven 存储库并同步项目

    buildscript { repositories { jcenter() google() maven { url "https://maven.google.com" } } dependencies { classpath 'com.android.tools.build:gradle:3.1.3' } } allprojects { repositories { google() jcenter() maven { url "https://maven.google.com" } } }
  4. 如果您使用的是 Android Gradle 插件 3.1.3,您应该确保您的 gradle 包装器版本是 4.4。 在你的项目根目录下,找到gradle-wrapper.properties并修改如下。

     distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists distributionUrl=https\\://services.gradle.org/distributions/gradle-4.4-all.zip

我在启用离线模式时遇到了这个问题。 我禁用了离线模式并同步。

  • 通过单击File > Settings打开首选项。
  • 在左侧窗格中,单击Build, Execution, Deployment > Gradle
  • 取消选中Offline work
  • 再次应用更改并同步项目。

我知道这很晚了,但我认为这可能会帮助某人解决他的问题。

在我的情况下,这是因为 compileSdkVersion 和 targetSdkVersion 设置为 29 而当我检查我的 SDK 管理器时,它显示该软件包已部分安装。 而 SDK 版本 28 已完全安装。 我将 compileSdkVersion 和 targetSdkVersion 以及支持库更改为 28。

之前: compileSdkVersion 29 targetSdkVersion 29 implementation 'com.android.support:appcompat-v7:29.+' implementation 'com.android.support:design:29.+'

修改后: compileSdkVersion 28 targetSdkVersion 28 implementation 'com.android.support:appcompat-v7:28.+' implementation 'com.android.support:design:28.+'

应用这些更改后,它就像一个魅力。

@shizhen 的回答对我的情况不起作用。

花了一天多的时间,终于得到了一个可行的解决方案。 我在办公室环境中,所以通过尝试不同的方法,我的 gradle 文件被破坏了。 所以我从以下文件中删除了所有代理和端口信息表单,事情就成功了。

用户 -> .gradle -> gradle.properties

此外,我在 Android studio -> 首选项 -> 网络和工作室的 HTTP 代理下启用了“自动检测代理设置”,将自动检测网络配置。

特殊信用

我只是分享这个答案,因为我有类似的问题。

最后,错误是因为我无意中更改了fileTree 就我而言,我通过更改来修复:

// implementation or compile
implementation fileTree(include: ['*.jar'])

// implementation or compile
implementation fileTree(include: ['*.jar'], dir: 'libs')

我已经解决了这个 Gradle 缓存问题,如下所示。

如果有人使用 MacBook,那么下面是我用来解决此问题的步骤。

  1. 有一个隐藏的 Gradle 文件夹。 通过使用以下命令,我们可以打开隐藏的 Gradle 文件夹并删除名为 gradle.properties 的文件

快捷方式(⌘ + shift + G)然后在弹出窗口中输入这个~/.gradle/按回车

要删除的文件 -> gradle.properties

  1. 然后返回 android studio 并将您的项目与 Gradle 文件同步。

我没有看到提到的一种可能性。 如果您要导入的项目使用 android 产品风格,则您的missingDimenstionStrategy可能有误。

在您的:app build.gradle (未能解决依赖关系的代码)中,确保您已正确设置您所依赖的产品的特定风格。 这允许您以后的所有依赖代码(例如implementationapi等)知道它依赖于哪个精确构建

 defaultConfig {
        ...<snip unrelated>...

        // Ensure you specify the flavor you depend on!!
        // If dep has multiple flavor dimensions, you need to specify them all
        missingDimensionStrategy 'classpath', 'gms17'
    }

对于尝试导入他们自己创建的库时获得此功能的任何人

我一直在使用Kotlin 多平台库,并尝试使用 jitpack 发布我的库,然后将它们拉入其他项目。 我对大部分内容都很陌生,不知道我需要在 gradle 中将 publishLibraryVariants 添加到我的 android 配置中。 我遵循了其他不需要这个的教程,所以我不确定 Kotlin MPP 是什么让你需要它。 这是代码。 您可能会发布满足您需求的其他变体,但这些似乎是使用基本项目构建的标准要求。 android 之后的 () 不是绝对必要的,但是默认脚本随附了它们,所以我离开了它。 Kotlin 或 Groovy DSL 的代码基本相同。

在正在发布的库的 gradle 脚本中

kotlin {
    android() {
        publishLibraryVariants("release", "debug")
        …
    }
    …
}

以下解决方案可能对某人有所帮助。

我在新模块中使用implementation project(':my_project_other_modules')时遇到了这个问题。

我和我的队友讨论过,最后我从其中一个人那里得到了解决方案,我必须使用flavorDimensions 和 productFlavors。 因为app/build.gradle使用了flavorDimensions 和 productFlavors。 当我在新模块中添加这些时,没有发生错误。

就我而言,代码中有一个错字。 因此,在尝试其他任何事情之前,请务必先检查一下。

我无法找到问题的根本原因,但找到了解决方法。 我首先将我的 java home 变量设置为这样。

  • vi ~/.bash_profile (这仅适用于 mac。linux 上的 bash 配置文件不同)
  • 输入字母i进行插入,然后将 JAVA_HOME 变量设置为这样
  • export JAVA_HOME=/Applications/Android\\Studio.app/Contents/jre/jdk/Contents/Home/
  • esc退出 vi 编辑器,然后输入:wq
  • 重新启动计算机
  • 瞧! 您的 android studio 项目应该可以毫无顾虑地构建

就我而言:当我设置 AS 时,我的 Windows 配置了代理。 后来,我断开代理并在 AS 设置中禁用代理,但是,在文件 .gradle\\gradle.properties - proxy - present

只是,在文本编辑器中清除此文件中的代理设置

我遇到了你的问题,我解决了。 当您的目标 api 级别未完全下载时会出现此错误。 您有两种方法:转到您的 SDK 菜单并下载所有 android 9 组件,或者更好的方法是转到您的 build.gradle(Module app) 并像这样更改它:但请记住,在应用这些更改之前,请确保您已完全下载 api lvl 8

在我的情况下,我使用了谷歌播放服务......我增加了它解决的图书馆服务

implementation 'com.google.android.gms:play-services-auth:16.0.0'

库和应用模块中的 Google Play 服务必须相同

参考

对我来说,这是子模块。 虽然目录在那里,但由于某种原因缺少源文件。 更新子模块后,工作正常。

正如@Ebin Joy 所说,如果您的 gradle 文件损坏,那么有一个简单的解决方案。 手动提供代理详细信息,如图所示。 那么你就可以走了。 此解决方案仅在您使用任何封闭网络(如办公网络等)时才有效。

在此处输入图片说明

如果未导入库,则会出现此错误。 在我的情况下,它不允许我导入文件/新建/导入库下的库,给我错误:

“项目已经包含具有该名称的模块。”

我能够解决该问题并导入所需的库,并成功构建该应用程序。

在此处查看解决方案:

https://stackoverflow.com/a/58775319/12345849

从 Android Studio 3.5.2 for Windows 开始,问题仍然相关。

在我的特定用例中,当我不断遇到这种特别的头痛时,我试图将 Gander ( https://github.com/Ashok-Varma/Gander ) 添加到我的依赖项列表中。

事实证明,我还没有在我的cacerts文件中获得 JCenter 证书的批准。 我正在通过公司防火墙,我必须使用我尝试导入的依赖项来执行此操作。 因此,要这样做:

  1. 确保您的 Android Studio 不需要通过任何代理。

  2. 导出获得依赖项的证书(通常只是 JCenter)

  3. 将证书添加到您的cacerts文件中:

    keytool -import -alias [your-certificate-name] -keystore 'C:\\Program Files\\Java\\jdk[version]\\jre\\lib\\security\\cacerts' -file [absolute\\path\\to\\your\\certificate].cer

  4. 重启安卓工作室

  5. 再次尝试同步。

答案基于此: https : //stackoverflow.com/a/26183328/4972380

尝试在依赖行中添加配置类型。 例如:

implementation project(path: ':some_module', **configuration: 'default'**)`

如果您曾经使用过代理、VPN 等(或者可能没有,我不确定) .....那么下面的解决方案可能会帮助您...我不知道为什么(如果有人能告诉我为什么,我会很感激),但它确实有效。 当您对这个问题感到绝望时,请尝试一下

来到你的项目,打开gradle-wrapper.propertiesgradle.properties ,注释掉这些关于代理的代码:

#systemProp.http.nonProxyHosts=118.89.144.241|47.112.105.125
#systemProp.http.proxyHost=127.0.0.1
#systemProp.http.proxyPort=1081
#systemProp.https.nonProxyHosts=118.89.144.241|47.112.105.125
#systemProp.https.proxyHost=127.0.0.1
#systemProp.https.proxyPort=1081

在此处输入图片说明

那么,它可能会起作用。

PS:当我尝试使用dataBinding 库时遇到这个问题,当我添加代码时

buildFeatures {
        dataBinding true
    }

按照指南告诉我和 Syns 项目进入 gradle,我收到这样一个错误:“无法解析 ':app@debug/compileClasspath' 的依赖关系:无法解析......”。 最后我做了我上面描述的,我成功了。 我的经历可能会给你一个提示,所以我在这里发布了解决方案,希望它可能会有所帮助。

人们回答离线工作是积极的是对的。 但就我而言,它位于不同的地方。 要在顶部栏菜单中找到它,请选择

  1. 视图/工具窗口/摇篮
  2. 如果处于活动状态,则单击脱机按钮。 它是一个带有两条居中斜线的小矩形

此外,您可以单击顶部栏菜单中的帮助菜单并编写“gradle”并建议位置。

这既不是缓存问题,也不是应用程序与库的问题。 这是证书问题。 如果您尝试运行您的项目而不是 gradle build,您会发现下载证书很困难。 要解决这个问题,只需添加google每个月更换的证书即可。

这是我的命令行,请使用您自己的路径进行相应编辑。 密钥库的密码是changeit

keytool -import -alias google_10 -keystore /Library/Java/JavaVirtualMachines/adoptopenjdk-9.jdk/Contents/Home/lib/security/cacerts -file ~/Desktop/GTS\\ CA\\ 1C3.cer

如果您同时使用这两种情况,可能会发生这种情况

'com.android.support:appcompat-v7:28.0.0-alpha3'
'com.android.support:support-v4:28.0.0-alpha3'

删除线

implementation 'com.android.support:support-v4:28.0.0-alpha3' 

从您的build.gradle文件中,然后重试。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM