所以,现在我有一个图书馆项目,比如项目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
所有的其他依赖关系?
答案 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'标记来解决。