编辑:
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:r18。 build.gradle 中 dependencies 的 fragment :
compile 'com.android.support:support-v4:18.0.0'
支持库是从通过 Android SDK 管理器安装的 Android Support Repository 获取的,如 here 所述.然后通过运行以下命令构建并发布该项目到 maven 本地存储库:gradle uploadArchives
我已验证,确实库 .aar 然后在本地 maven 存储库下可用。
第二个项目是一个 Android 应用,使用了 Gradle 的 'android' 插件,它引用了第一个项目生成的库的 maven 依赖项。这是 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 r18从 Android 支持存储库 获取它。它失败了,因为 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/