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
4

12 回答 12

95

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

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

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

2017年编辑:

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

repositories {
google()
jcenter()
}
于 2013-08-16T12:59:49.867 回答
50

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

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

于 2013-09-19T16:37:27.637 回答
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 管理器版本开始。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'
于 2014-01-14T03:56:35.210 回答
5

Maven Central 中不存在这些依赖项(请参阅此内容)。

于 2013-08-04T17:55:38.030 回答
2
compileSdkVersion 17
targetSdkVersion 17

将编译版本从 18 更改为 17

compile "com.android.support:support-v4:17.0.+"
compile "com.android.support:appcompat-v7:17.0.+"
于 2016-01-06T17:48:04.063 回答
2

除了卡西姆的回答:

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

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

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

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

于 2016-03-08T20:05:16.180 回答
1

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

$ android

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

于 2014-10-06T22:19:20.847 回答
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 下载它想要的任何东西。

于 2015-11-24T00:37:43.770 回答
1

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

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

而已

于 2015-09-07T05:07:14.620 回答
1
  1. 安装 android sdk 管理器
  2. 检查是否安装了构建工具。安装 api 23。
  3. 从 Android SDK Manager 下载“Android Support Repository”
  4. 删除 cordova-plugin-android-support-v4
  5. 建造
于 2016-09-30T08:46:43.733 回答
1

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

我需要单击下一个选项卡“Gradle Sync”。有一个链接“Install Repository and sync project”安装了“Android Support Repository”。

于 2016-05-23T13:33:50.273 回答
0

将此添加到您的gradle:

allprojects {
    buildscript {
        repositories {
            maven {
                url "https://dl.bintray.com/android/android-tools"
            }
        }
    }
...
}
于 2018-12-11T07:11:21.373 回答