Gradle Build Android Project“无法解决所有依赖性”错误


79

我正在尝试使用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

请转到此问题并加注星标。似乎有很多问题,因为jCenter上有许多未发布的库。
Patricio Sard

Answers:


95

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

从Android SDK Manager下载“ Android支持存储库”,并将支持库的Maven存储库下载到您的Android SDK目录(请参阅“ extras”文件夹)

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

2017年编辑:

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

repositories {
google()
jcenter()
}

12
从“ Android SDK Manager”下载“ Android Support Repository”可以最终解决我在Android Studio 0.4.3项目中遇到的问题。对于Gradle的弃用消息,仍然只有一点遗憾,但这是另一个故事,所以我提出了一个问题
Franco Rondini 2014年

您能一步一步解释maven-android-sdk-deployer一下吗:我的意思是先下载,然后什么?
侯赛因·阿卡贾尼

@ H.Aqjn我已经重新排列了答案,以便读得更好(我认为),如果您使用的是Gradle,那么可以从SDK Manager下载支持存储库就可以了
kassim

50

转到您安装了Android Studio的位置(对我而言,位于下面C:\Users\username\AppData\Local\Android\android-studio\)并打开sdk\tools,然后运行android.bat。在这里,更新并下载所有缺少的构建工具,并确保您在Extras下更新了Android支持存储库和Android支持库。SDK Manager完成后,重新启动Android Studio。

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


8
这确实对我有所帮助,我希望Android Studio使用我在计算机上手动安装的Android SDK。让IDE使用自己的Android SDK而不是使用开发人员定义的SDK确实很烦人。SDK应该与IDE分开。
samael 2013年

13
我不认为Android Studio在AppData下拥有自己的SDK版本。这真是令人困惑!
pqvst 2013年

我必须安装Extras / Android支持库,重新启动SDK Manager,然后出现Android支持存储库。
Leos Literak

这为我摆脱了有关“ com.android.support:appcompat-v7:19.+”的错误。
Nick Westgate 2014年

嗯,当我注意到Ubuntu机器上有多个Android SDK实例时,我也有类似的困惑。因此,我很怀疑AndroidStudio创建了自己的实例。当前,我运行AS v.2.1.2,并且仍然存在相同的问题。我想知道团队是否计划在不久的将来修复它,或者他们认为它是一项功能:)
售罄2016年

27

如果您在无头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版本22.6.4(来自GUI中的About))我得到的响应是:Error: Ignoring unknown package filter 'platform-tools',也用于'android-19''extra-android-support'。干杯!
sdaau 2014年

我收到的“ SWT文件夹'/ opt / android-sdk-linux / tools / lib / arm'不存在
MarianKlühspies2014年

3
谢谢你的提示。我已经跑步: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版本)。
Mateusz Szulc 2014年

1
通过提到需要安装Google Repository,您在这里挽救了很多生命。谢谢。
yati sagade 2014年

是的,我的也是因为缺少-142- Android支持存储库,修订版21150- Google存储库,修订版22
Bruce Lim 2015年


2
compileSdkVersion 17
targetSdkVersion 17

将编译版本从18更改为17

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

2

除了Kassim的答案:

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

使用maven-android-sdk-deployer将库部署到本地存储库

或从Android SDK Manager下载Android支持存储库(额外),并且支持库的M2存储库将下载到您的Android SDK目录中

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


1

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

$ android

然后在弹出的用户界面中,选择需要安装的工具/存储库-在您的情况下为支持库



1

尽量关闭您的防火墙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下载所需的任何内容。


1

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

我需要单击下一个选项卡“ Gradle Sync”。有一个链接“安装存储库并同步项目”,该链接安装了“ Android支持存储库”。



0

将此添加到您的gradle:

allprojects {
    buildscript {
        repositories {
            maven {
                url "https://dl.bintray.com/android/android-tools"
            }
        }
    }
...
}
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.