我在这里创建了一个Android库项目:https://github.com/dbotha/Android-Photo-Picker
照片选择程序库项目本身有自己的几个依赖项:
// library build.gradle
dependencies {
compile 'com.android.support:appcompat-v7:22.2.1'
compile 'com.squareup.picasso:picasso:2.5.2'
}我已经在Maven Central上提供了这个库项目,这样就可以轻松地将它作为依赖项添加到应用程序中:
// 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
因此,我很好奇,那些将我的照片选择库作为依赖项的应用程序是否总是需要显式地添加所有的照片选择库依赖项?
发布于 2015-08-25 13:46:01
您正在使用@aar表示法。
这意味着您只想下载aar工件,而不需要依赖项。
您可以检查文档的这一部分
请查看1.4.1.2. Artifact only notation部分:
只使用工件符号创建一个模块依赖项,该依赖项只下载具有指定扩展名的工件文件。现有的模块描述符被忽略。
如果您想下载依赖项,应该使用@aar符号来添加transitive=true。
我希望省略@aar应该会起作用。
https://stackoverflow.com/questions/32204339
复制相似问题