2013-09-01 106 views
20

编辑:Android的摇篮构建失败:找不到com.google.android:support-v4:r18

This issue seemed to disappear by its own somehow, possibly due to the new Gradle build system becoming more mature.

我有两个单独的Android项目:

的第一个项目是一个Android Library使用'android-library' Gradle插件,这取决于support-library-v4:r18。从依赖的build.gradle段:

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

支持库是通过Android SDK中经理安装支持Android库牵强,因为解释here。然后,该项目建成并发布运行于本地Maven仓库:gradle uploadArchives

我证实,确实库.aar是那么本地Maven仓库下可用。

该第二项目是使用“机器人”插件摇篮,它引用由第一项目产生的库的行家依赖性 Android应用。下面是片段的build.gradle

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

NOTE: The two projects are completely separated from another. Meaning that, they are NOT subprojects of the same root project.

当我尝试通过运行建立第二个项目: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 

我检查了.pom文件cool-lib,在我的本地Maven回购文件夹,我看到它有以下依赖性:

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

出于某种原因,摇篮是试图让支持库-V4 R18LIB-项目来自maven中央存储库,而不是从Android支持库。由于support-library-v4的Maven Central的最新版本是r7,因此它失败。

有没有办法迫使摇篮严格从支持Android库获取支持库-V4 R18也被从Maven的中央引用的外部的Android库?

+0

使用两个库,其中一个需要另外一个时,我也看到这个问题。你能解决它吗? – frapontillo

+0

当我的ANDROID_HOME环境变量指向SDK的旧版本时,我有同样的错误 –

回答

6

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

+1

我为此设置了ANDROID_HOME环境变量,我认为它根据我的理解具有相同的影响... –

+0

我可能错了但它取决于ANDROID_HOME的设置。它是在.bashrc还是.bash_profile中设置的?如果是这样,它只能在终端上看到,而不能在桌面上看到。例如对于侏儒它会在别的地方。 – robotoaster

+0

'ANDROID_HOME'的作用与设置'sdk.dir'相同。 – Flow

38

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

+1

这个伎俩谢谢! –

+0

升级SDK后我必须这样做(遵循Android L版本) –

+0

正如问题中所写:“支持库是从Android SDK Manager安装的Android支持库中获取的,如此处所述',这意味着我已经安装了它。这个问题似乎以某种方式消失了,可能是由于新的Gradle构建系统变得更加成熟。 –

2

你需要安装Android Support Repository,madhead说。但在我的情况下,它缺席。您应该转至工具 - >管理加载项网站...并检查所有“Google Inc.”站点。然后,Android支持信息库将出现在软件包列表中,您可以安装它。