AAR可以包含传递依赖吗?

时间:2014-09-06 07:54:30

标签: android maven gradle android-studio android-gradle

所以,现在我有一个图书馆项目,比如项目Foo,它取决于像OkHttp这样的图书馆。

现在,Foo有一个maven buildstep,可以生成AAR并将其推送到公共场所。

现在让我们说我有项目B,我们称之为Bar。 Bar是一个Android应用程序,Bar取决于Foo

好吧,我有。但是,当我拨打来自public static Foo的来自Bar的{​​{1}}功能时,我会收到此消息:

OkHttp

那么,这样的事情可能吗?或者java.lang.NoClassDefFoundError: com.squareup.okhttp.OkUrlFactory at com.foo.sdk.utils.OkHttpStack.<init>(OkHttpStack.java:15) 是否需要手动依赖Bar以及OkHttp所有的其他依赖关系?

1 个答案:

答案 0 :(得分:51)

所以,花了一点时间,但我找到了我想要的东西。它恰好是我搜索我的搜索方式。

这个较少见的答案正是我所寻找的:

Transitive dependencies not resolved for aar library using gradle

基本上,我需要添加一个

transitive = true

到Bar的build.gradle

例如:

compile ('com.foo:FOO:1.0.0@aar'){
       transitive=true
}

这样它就包含了我的所有传递库。

但请注意,这实际上可能会导致依赖关系(尤其是本地关系)之间的冲突,这可以使用'exclude'标记来解决。