无法解决依赖项':app@debug/compileClasspath':无法解析。

84

新安装的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

屏幕截图:

TestProject

我遇到了这个问题好几次,即使强制使用https或http也无法解决它。


你的问题有什么解决方案吗? - Code_Life
你好,你是怎么解决你的错误的?我看到你没有接受下面任何答案。所以我尝试了下面提到的所有可能的解决方案,但都没有帮助到我。 - Lokesh Pandey
1
@ Lokesh 这是 com.android.support:appcompat-v7:28.0.0-alpha3 中的一个错误,所以我将其更改为 com.android.support:appcompat-v7:28.0.0,然后它正常工作了。 - Zulqurnain Jutt
@ZulqurnainJutt 我不确定。但是我在一个受限的环境中工作。所以我只是在开放的互联网连接中运行了所有东西。而且它可以正常工作。 - Lokesh Pandey
@ZulqurnainJutt,你解决了这个问题吗?我也遇到了同样的问题。 - hfarhanahmed
显示剩余4条评论
23个回答

53

你可能导入了 Application,而不是 Module。你可以在模块的 gradle 文件中更改它。

更改

apply plugin: 'com.android.application'

apply plugin: 'com.android.library'

您还需要从gradle中删除applicationId


为什么我需要这样做?有解释吗? - CodeWithVikas
1
@CodeWithVikas 正如我在答案中所说,这可能是你的问题。如果不是,那么请忽略这个答案,你不需要这样做。 - Shahbaz Hashmi
7
有趣的是,SOF如何演变成TRY,而不是WHY和HOW。我认为这样的提示应该放在注释中。 - kolboc
1
"apply plugin" 确定使用哪个 Gradle 插件来编译您的代码。我猜您可以拥有多个 .application 项目并单独运行它们,但是除非将它们编译为库,否则它们不能相互引用(我没有太多搜索):https://developer.android.com/studio/projects/android-library 但是真的很遗憾,一个没有任何解释的答案会得到这么多赞。 - Heinzlmaen
@Heinzlmaen 每个人都知道“apply plugin”的作用,根据他们的需求可以拥有多个应用项目。但是人们仍然觉得这个答案很有帮助。 - Shahbaz Hashmi
1
@ShahbazHashmi 不。 - Heinzlmaen

21

我刚刚弄清楚如何解决这个Gradle错误,按照以下步骤操作:

  1. 进入“文件”。
  2. 点击“无效缓存/重启”。
  3. 再次点击“无效缓存/重启”(在对话窗口上)。

让Gradle顺利构建,不要有任何中断。

谢谢!祝好。


3
编辑代码之前,人们必须先做这件事。首要之务。 - Malith Ileperuma
安卓还是一如既往的烂 -_- 我尝试了很多方法,然后执行了“无效缓存/重启”操作,一切都正常工作了。 - Adnan Bin Mustafa

12
我认为问题出在以下方面: 与你的网络连接不可用,因此Android Studio要求你启用“离线工作”,而你只是启用了它。
解决方法如下:
  • 文件
  • 设置
  • 构建、执行、部署
  • Gradle
  • 取消勾选离线工作
为什么取消勾选离线工作可以解决问题呢?因为在Gradle中,有时需要更新一些依赖项(包含“+”的依赖项),所以需要网络连接。

12
  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"
        }
    }
}
如果您正在使用Android Gradle插件3.1.3,请确保您的gradle wrapper版本为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

3
仅添加Google()和Maven{}仓库对我有用。 - CodeWithVikas

7

我知道现在已经很晚了,但我认为这可能会帮助某些人解决问题。

在我的情况下,出现这种情况是因为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.+'

应用这些更改后,它可以完美地工作。


1
谢谢Manish,你说得对,由于迁移到AndroidX,版本高于28的支持库已经不再支持了。 - Ernest Poletaev
对于2020年的任何人来说,这就是你想要的答案。 - Chiguireitor

6

@shizhen的答案对我的情况没有用。

我花了一天多时间最终找到了一个可行的解决方案。由于我是在办公环境下尝试不同的方法,我的gradle文件被损坏了。因此,我从以下文件中删除了所有代理和端口信息,然后事情就可以工作了。

用户 -> .gradle -> gradle.properties

此外,我在Android Studio中启用了“自动检测代理设置”选项,路径为 Android studio -> preferences -> HTTP proxy for network,这样Studio会自动检测网络配置。

特别鸣谢


6

我曾经遇到了离线模式启用的问题,我将离线模式禁用并同步了一下。

  • 点击文件 > 设置以打开首选项。
  • 在左窗格中,点击构建、执行、部署 > Gradle
  • 取消选中离线工作
  • 应用更改并再次同步项目。

你可以告诉我,哪个依赖无法解析吗? - Khemraj Sharma
这是我们自己构建的 Android 项目中的 Gradle 模块。 - IgorGanapolsky
这是本地库模块吗?还是Gradle中的依赖URL? - Khemraj Sharma
本地库模块 - IgorGanapolsky
我几天前也遇到了同样的问题。我不太记得我当时做了什么,但你可以尝试删除.idea、.gradle和build目录,然后再次同步。这是我们能做的。 - Khemraj Sharma

4

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

最终,错误是由于我无意中更改了fileTree引起的。在我的情况下,我通过更改以下内容来修复:

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

为了

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

终于,在经过三天的努力后,你又为我挽回了一天。 - Abdur Rahman

2

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

如果有人使用MacBook,则可以按照以下步骤解决此问题。

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

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

要删除的文件 -> gradle.properties

  1. 然后返回Android Studio并与Gradle文件同步您的项目。

1
太好了,你救了我的时间和生命。:x - Mohammad Davari

2
正文翻译:正如 @Ebin Joy 所说,如果你的 gradle 文件损坏了,那么有一个简单的解决方法。像图片中所示手动给出代理详细信息,然后你就可以继续使用了。这个解决方案只适用于使用封闭网络,比如办公室网络等情况。

enter image description here


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接