Android Gradle构建失败:找不到com.google.android:support-v4:r18

时间:2013-09-01 15:01:38

标签: android maven build gradle android-support-library

修改

  

这个问题似乎以某种方式消失了,可能是由于新的Gradle构建系统变得更加成熟。

我有两个独立的Android项目:

第一个项目是使用'android-library'插件的Android库,它取决于 support-library-v4:r18 。来自 build.gradle 依赖项的摘录:

compile 'com.android.support:support-v4:18.0.0'

支持库是通过 Android SDK Manager 安装的 Android支持存储库获取的,如here所述。然后通过运行:gradle uploadArchives

构建该项目并将其发布到maven本地存储库

我验证了,确实库 .aar 可以在本地maven存储库下使用。

第二个项目是一个Android应用程序,使用Gradle的'android'插件,它引用了第一个项目生成的库的 maven依赖。以下是来自 build.gradle 的代码段:

repositories {
    mavenLocal()
    mavenCentral()
}
dependencies {
    compile 'com.android.support:support-v4:18.0.0'
    compile 'com.example:cool-lib:1.0.0-SNAPSHOT'
}
  

注意:这两个项目完全分开。意思是,   它们不是同一个根项目的子项目。

当我尝试通过运行gradle assemble

来构建第二个项目时

我收到以下错误:

Could not find com.google.android:support-v4:r18.
Required by:
    com.example:app-project:unspecified > com.example:cool-lib:1.0.0-SNAPSHOT

我检查了 cool-lib .pom 文件,在我的本地maven repo文件夹下,我发现它具有以下依赖项:

<dependency>
  <groupId>com.android.support</groupId>
  <artifactId>support-v4</artifactId>
  <version>18.0.0</version>
  <scope>compile</scope>
</dependency>

出于某种原因,Gradle尝试从maven中央存储库获取 lib-project 支持库-v4 r18 ,而不是从 Android支持存储库获取它。它失败,因为 support-library-v4 的Maven Central中的最新版本是 r7

是否有办法强制Gradle严格从 Android支持存储库中获取 support-library-v4 r18 以用于外部Android库哪些是从Maven Central引用的?

4 个答案:

答案 0 :(得分:38)

您需要从SDK管理器安装Android Support Repository。之后,Gradle将能够从${SDK_HOME}\extras\android\m2repository\解析支持库。

答案 1 :(得分:6)

确保在主项目文件夹中有local.properties文件,sdk.dir变量指向Android SDK。 (在mac上测试)

答案 2 :(得分:2)

你需要安装Android支持存储库,正如madhead所说。但就我而言,它缺席了。您应该转到工具 - >管理加载项网站...并检查所有&#34; Google Inc.&#34;站点。然后Android支持存储库将出现在包列表中,您可以安装它。

答案 3 :(得分:2)