首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用@aar注释分级同步而不是自动解决Android库项目依赖关系

使用@aar注释分级同步而不是自动解决Android库项目依赖关系
EN

Stack Overflow用户
提问于 2015-08-25 12:43:13
回答 1查看 615关注 0票数 0

我在这里创建了一个Android库项目:https://github.com/dbotha/Android-Photo-Picker

照片选择程序库项目本身有自己的几个依赖项:

代码语言:javascript
复制
// library build.gradle
dependencies {
    compile 'com.android.support:appcompat-v7:22.2.1'
    compile 'com.squareup.picasso:picasso:2.5.2'
}

我已经在Maven Central上提供了这个库项目,这样就可以轻松地将它作为依赖项添加到应用程序中:

代码语言:javascript
复制
// application build.gradle
dependencies {
    compile 'ly.kite:photo-picker:1.1.2@aar'
}

但问题是,当我将其作为依赖项添加到新的Android应用程序项目时,它会崩溃,因为它无法从库项目中找到Picasso依赖项:

Caused by: java.lang.ClassNotFoundException: Didn't find class "com.squareup.picasso.Picasso" on path

只有当我显式地将这种依赖添加到应用程序中时,build.gradle才会工作。

我的库POM文件dependencies看起来是正确的:https://repo1.maven.org/maven2/ly/kite/photo-picker/1.1.2/photo-picker-1.1.2.pom

因此,我很好奇,那些将我的照片选择库作为依赖项的应用程序是否总是需要显式地添加所有的照片选择库依赖项?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-08-25 13:46:01

您正在使用@aar表示法。

这意味着您只想下载aar工件,而不需要依赖项。

您可以检查文档的这一部分

请查看1.4.1.2. Artifact only notation部分:

只使用工件符号创建一个模块依赖项,该依赖项只下载具有指定扩展名的工件文件。现有的模块描述符被忽略

如果您想下载依赖项,应该使用@aar符号来添加transitive=true

我希望省略@aar应该会起作用。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32204339

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档