Android Gradle 构建失败 : Could not find com. google.android:support-v4:r18

标签 android maven build gradle android-support-library

编辑:

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

我有两个独立的 Android 项目:

第一个项目是一个使用 'android-library' 插件的 Android 库,用于 Gradle,它依赖于 support-library-v4:r18build.gradledependencies 的 fragment :

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

支持库是从通过 Android SDK 管理器安装的 Android Support Repository 获取的,如 here 所述.然后通过运行以下命令构建并发布该项目到 maven 本地存储库:gradle uploadArchives

我已验证,确实库 .aar 然后在本地 maven 存储库下可用。

第二个项目是一个 Android 应用,使用了 Gradle 的 'android' 插件,它引用了第一个项目生成的库的 ma​​ven 依赖项。这是 build.gradle 的 fragment :

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

我检查了 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 获取 support library-v4 r18Android 支持存储库 获取它。它失败了,因为 support-library-v4 的 Maven Central 中的最新版本是 r7

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

最佳答案

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

关于Android Gradle 构建失败 : Could not find com. google.android:support-v4:r18,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18559660/

相关文章:

java - Maven:缺少 'target' 文件夹下的已编译类

java - 默认情况下可以使用什么范围来使依赖项成为非传递性?

android - 使用 Xamarin 和 Visual Studio 2012 生成错误

android - 套接字通信问题[Android]

android - Onesignal 与 GCM(FCM)

getResources().getString(R.string.value) 中的 java.lang.NullPointer 异常;

java - 将 Maven 应用到项目中

c - 项目中没有 Makefile.am 的 Makefile.in

Coverity和 "Failed to initialize ICU, try using the --prevent-root option"

android - 来自硬件键盘的输入失去焦点