AAR可以包含传递依赖吗?
所以,现在我有一个库项目,说项目Foo
依赖于像OkHttp
的库。
现在, Foo
有一个Maven构build步骤,生成一个AAR并将其推送到公共场所。
所以现在让我说我有项目B,我们将它称为Bar
。 Bar是一个Android应用程序, Bar
依赖于Foo
。
那么,我有。 但是,当我调用从调用OkHttp
Bar
Foo
的public static
函数时,我收到以下消息:
java.lang.NoClassDefFoundError: com.squareup.okhttp.OkUrlFactory at com.foo.sdk.utils.OkHttpStack.<init>(OkHttpStack.java:15)
那么,这样的事情是可能的吗? 或者将Bar
需要手动依赖OkHttp
以及任何其他依赖Foo
有?
所以,花了一点时间,但我发现我在找什么。 这恰好是我用词的方式。
这个较less见的答案正是我所期待的:
使用gradle的aar库不能解决传递依赖问题
基本上,我需要添加一个
transitive = true
到Bar的build.gradle
例如:
compile ('com.foo:FOO:1.0.0@aar'){ transitive=true }
这样它包括我所有的传递库。
但是请注意,这实际上可能会导致依赖关系(特别是本地关系)之间的冲突,这些冲突可以使用“排除”标记来解决。