【问题标题】:Gradle Build Android Project "Could not resolve all dependencies" errorGradle 构建 Android 项目“无法解决所有依赖项”错误
【发布时间】:2013-08-05 10:12:19
【问题描述】:

我正在尝试使用 Gradle 构建我的第一个项目,我认为我的 gradle 文件和设置是正确的。

我只使用一个模块并支持 V4 + AppCompatBar 库。

项目 - build.gradle

allprojects {
    repositories {
        mavenCentral()
    }
}

项目 - settings.gradle

include ':AssignmentTempos21'

主模块 - build.gradle

buildscript {
    repositories {
        mavenCentral()
    }

    dependencies {
        classpath 'com.android.tools.build:gradle:0.5.+'
    }
}

apply plugin: 'android'

repositories {
    mavenCentral()
}

android {
    compileSdkVersion 17
    buildToolsVersion "17.0.0"

    defaultConfig {
        minSdkVersion 8
        targetSdkVersion 17
    }
}

dependencies {
    compile "com.android.support:support-v4:18.0.+"
    compile "com.android.support:appcompat-v7:18.0.+"
}

带有 -i 标志的控制台输出:

MacBook-Air-de-Cesar-2:AssignmentTempos21 menor$ ./gradlew -i clean assemble
Starting Build
Settings evaluated using settings file '/Users/menor/workspace_android/AssignmentTempos21/settings.gradle'.
Projects loaded. Root project using build file '/Users/menor/workspace_android/AssignmentTempos21/build.gradle'.
Included projects: [root project 'AssignmentTempos21', project ':AssignmentTempos21']
Evaluating root project 'AssignmentTempos21' using build file '/Users/menor/workspace_android/AssignmentTempos21/build.gradle'.
Compiling build file '/Users/menor/workspace_android/AssignmentTempos21/build.gradle' using BuildScriptClasspathScriptTransformer.
Compiling build file '/Users/menor/workspace_android/AssignmentTempos21/build.gradle' using BuildScriptTransformer.
Evaluating project ':AssignmentTempos21' using build file '/Users/menor/workspace_android/AssignmentTempos21/AssignmentTempos21/build.gradle'.
Resource missing. [HTTP GET: http://repo1.maven.org/maven2/com/android/support/support-v4/maven-metadata.xml]
Resource missing. [HTTP GET: http://repo1.maven.org/maven2/com/android/support/support-v4/]
Resource missing. [HTTP GET: http://repo1.maven.org/maven2/com/android/support/support-v4/maven-metadata.xml]
Resource missing. [HTTP GET: http://repo1.maven.org/maven2/com/android/support/support-v4/]
Resource missing. [HTTP GET: http://repo1.maven.org/maven2/com/android/support/support-v4/maven-metadata.xml]
Resource missing. [HTTP GET: http://repo1.maven.org/maven2/com/android/support/support-v4/]
Resource missing. [HTTP GET: http://repo1.maven.org/maven2/com/android/support/support-v4/maven-metadata.xml]
Resource missing. [HTTP GET: http://repo1.maven.org/maven2/com/android/support/support-v4/]
Resource missing. [HTTP GET: http://repo1.maven.org/maven2/com/android/support/appcompat-v7/maven-metadata.xml]
Resource missing. [HTTP GET: http://repo1.maven.org/maven2/com/android/support/appcompat-v7/]
Resource missing. [HTTP GET: http://repo1.maven.org/maven2/com/android/support/appcompat-v7/maven-metadata.xml]
Resource missing. [HTTP GET: http://repo1.maven.org/maven2/com/android/support/appcompat-v7/]
Resource missing. [HTTP GET: http://repo1.maven.org/maven2/com/android/support/appcompat-v7/maven-metadata.xml]
Resource missing. [HTTP GET: http://repo1.maven.org/maven2/com/android/support/appcompat-v7/]
Resource missing. [HTTP GET: http://repo1.maven.org/maven2/com/android/support/appcompat-v7/maven-metadata.xml]
Resource missing. [HTTP GET: http://repo1.maven.org/maven2/com/android/support/appcompat-v7/]

FAILURE: Build failed with an exception.

* What went wrong:
A problem occurred configuring project ':AssignmentTempos21'.
> Failed to notify project evaluation listener.
   > Could not resolve all dependencies for configuration ':AssignmentTempos21:_DebugCompile'.
      > Could not find any version that matches com.android.support:support-v4:18.0.+.
        Required by:
            AssignmentTempos21:AssignmentTempos21:unspecified
      > Could not find any version that matches com.android.support:appcompat-v7:18.0.+.
        Required by:
            AssignmentTempos21:AssignmentTempos21:unspecified

* Try:
Run with --stacktrace option to get the stack trace. Run with --debug option to get more log output.

BUILD FAILED

Total time: 40.787 secs

【问题讨论】:

  • 请转至this issue 并加注星标。似乎有很多问题,因为有很多库未从 jCenter 发布。

标签: android gradle android-support-library build.gradle android-appcompat


【解决方案1】:

正如彼得所说,他们不会在 Maven Central 中

从 Android SDK 管理器下载“Android Support Repository”,支持库的 Maven 存储库将下载到您的 Android SDK 目录(参见“extras”文件夹)

要将库部署到本地 .m2 存储库,您可以使用 maven-android-sdk-deployer

2017 年编辑:

您现在可以参考 Google 在线 M2 存储库

repositories {
google()
jcenter()
}

【讨论】:

  • 从“Android SDK Manager”下载“Android Support Repository”彻底解决了我在Android Studio 0.4.3项目中遇到的这个问题。 Gradle 的弃用消息仍然有点遗憾,但这是另一个故事,所以我打开 this question
  • 能否请您一步一步解释:我的意思是先下载maven-android-sdk-deployer,然后呢?
  • @H.Aqjn 我已经重新安排了答案以便更好地阅读(我认为),如果您使用 Gradle,您应该可以从 SDK 管理器下载支持存储库跨度>
【解决方案2】:

转到您安装 Android Studio 的位置(对我来说它位于 C:\Users\username\AppData\Local\Android\android-studio\ 下)并打开 sdk\tools,然后运行 ​​android.bat。从这里,更新并下载任何缺失的构建工具,并确保更新了 Extras 下的 Android Support Repository 和 Android Support Library。 SDK Manager 完成后重启 Android Studio。

Android Studio 似乎完全忽略了任何已安装的 Android SDK 文件并保留自己的副本。运行更新后,使用 compile com.android.support:appcompat-v7:18.0.+ 为我成功编译了所有内容

【讨论】:

  • 这真的帮助了我,我希望 Android Studio 使用我手动安装在我的机器上的 Android SDK。让 IDE 使用自己的 Android SDK 而不是使用开发人员定义的 SDK 真的很烦人。 SDK 应该独立于 IDE。
  • 我不知道 Android Studio 在 AppData 下有自己的 SDK 版本。这太令人困惑了!
  • 我必须安装 Extras/Android Support Library,重启 SDK Manager,然后 Android Support Repository 出现了。
  • 这为我消除了关于“com.android.support:appcompat-v7:19.+”的错误。
  • 好吧,当我注意到我的 Ubuntu 机器上有多个 Android SDK 实例时,我也有类似的困惑。因此我有一个严重的怀疑,AndroidStudio 创建了自己的实例。目前我运行 AS v.2.1.2,同样的问题仍然存在。我想知道团队是否计划在不久的将来修复它,或者他们认为这是一个功能:)
【解决方案3】:

如果您在无头 CI 上运行并通过命令行安装 Android SDK,请确保在 --filter 参数中包含 m2repository 包:

android update sdk --no-ui --filter platform-tools,build-tools-19.0.1,android-19,extra-android-support,extra-android-m2repository,extra-google-m2repository

更新

从 Android SDK Manager 版本开始。 22.6.4 这不再起作用了。试试这个:

android list sdk --all

您将获得所有可用 SDK 包的列表。从上面的第一个命令(“Google Repository”和您可能缺少的其他命令)中查找组件的数值。

使用它们的数值安装包:

android update sdk --no-ui --all --filter <num>

更新 #2(2017 年 9 月)

随着今年早些时候发布的“新”Android SDK 工具,android 命令现已弃用,类似功能已移至名为 sdkmanager 的新工具:

列出已安装的组件:

sdkmanager --list

更新已安装的组件:

sdkmanager --update

安装一个新组件(例如构建工具版本26.0.0):

sdkmanager 'build-tools;26.0.0'

【讨论】:

  • 感谢漂亮的命令行!不幸的是,现在(Android SDK Manager rev. 22.6.4(来自 GUI 中的 About))我得到的响应是:Error: Ignoring unknown package filter 'platform-tools',也适用于'android-19''extra-android-support'。干杯!
  • 我收到“SWT 文件夹 '/opt/android-sdk-linux/tools/lib/arm' 不存在
  • 感谢您的提示。我跑过:android list sdk --all |grep -i repos,它给了我"98-Android Support Repository, revision 6""106-Google Repository, revision 11"。然后我安装了两个运行 android update sdk -u -a -t 98,106 的软件包,最终解决了这个问题(我正在使用 adt-bundle-linux-x86-20140702.zip,不知道它是哪个 SDK Manager 版本)。
  • 您在这里提到需要安装 Google 存储库,从而挽救了许多生命。谢谢。
  • 是的,我的也是由于缺少 -- 142- Android Support Repository,修订版 21 150- Google Repository,修订版 22
【解决方案4】:

这些依赖项在 Maven Central (see this) 中不存在。

【讨论】:

    【解决方案5】:
    compileSdkVersion 17
    targetSdkVersion 17
    

    将编译版本从 18 更改为 17

    compile "com.android.support:support-v4:17.0.+"
    compile "com.android.support:appcompat-v7:17.0.+"
    

    【讨论】:

      【解决方案6】:

      除了卡西姆的回答:

      正如彼得所说,他们不会在 Maven Central 中

      使用maven-android-sdk-deployer 将库部署到您的 本地仓库

      或从 Android SDK Manager 下载 Android Support Repository (在 Extras 中)和支持库的 M2 repo 将被下载 到你的 Android SDK 目录

      我还必须在 Android SDK 管理器中更新“支持库的本地 Maven 存储库”。

      【讨论】:

        【解决方案7】:

        要回显@friederbluemle,如果您安装了 Android SDK 工具,您也可以从命令行启动 SDK 管理器:

        $ android

        然后在弹出的 UI 中,选择需要安装的工具/存储库——在您的情况下是支持库 repo

        【讨论】:

          【解决方案8】:

          在您应用的 build.gradle 文件中写入以下语句。

          com.android.support:appcompat-v7:18.0.+

          就是这样

          【讨论】:

            【解决方案9】:

            尝试关闭防火墙it works for me。似乎 android studio 想要下载一些依赖项,而我们的防火墙阻止它下载它,just be aware that turning your firewall off may lower the security of your computer。如果你有更多的时间,你可以手动让你的 android studio 绕过你的防火墙,这样你就可以打开你的防火墙,同时让 android studio 下载它想要的任何东西。

            【讨论】:

              【解决方案10】:

              我在 Android Studio 2.1.1 的 Gradle Build 选项卡中收到了这条消息。我从 SDK 管理器安装了很多文件,但没有帮助。

              我需要点击下一个标签“Gradle Sync”。有一个链接“Install Repository and sync project”安装了“Android Support Repository”。

              【讨论】:

                【解决方案11】:
                1. 安装 android sdk 管理器
                2. 检查是否安装了构建工具。安装 api 23。
                3. 从 Android SDK Manager 下载“Android Support Repository”
                4. 移除 cordova-plugin-android-support-v4
                5. 构建

                【讨论】:

                  【解决方案12】:

                  将此添加到您的 gradle 中:

                  allprojects {
                      buildscript {
                          repositories {
                              maven {
                                  url "https://dl.bintray.com/android/android-tools"
                              }
                          }
                      }
                  ...
                  }
                  

                  【讨论】: