现在我有一个库项目,比如项目 Foo,它依赖于像 OkHttp 这样的库。
现在,Foo 有一个 Maven 构建步骤,可以生成 AAR 并将其推送到公共位置。
现在假设我有项目 B,我们将其称为 Bar。 Bar是一个Android应用程序,Bar依赖于Foo。
嗯,我有那个。但是,当我拨打电话时public static
Bar 中的 Foo 中调用 OkHttp 的函数,我收到以下消息:
java.lang.NoClassDefFoundError: com.squareup.okhttp.OkUrlFactory
at com.foo.sdk.utils.OkHttpStack.<init>(OkHttpStack.java:15)
这样的事可能吗?或者 Bar 是否需要手动依赖 OkHttp 以及 Foo 具有的任何其他依赖项?
花了一点时间,但我找到了我要找的东西。这恰好是我表达搜索的方式。
这个很少见的答案正是我正在寻找的:
使用 gradle 未解决 aar 库的传递依赖关系 https://stackoverflow.com/questions/22795455/transitive-dependencies-not-resolved-for-aar-library-using-gradle
请注意,依赖项仅与托管在 Maven 存储库中的 aar 库关联,因为 pom 文件不包含在 aar 中。
本质上,我需要添加一个
transitive = true
...到build.gradle
of Bar
Example:
compile ('com.foo:FOO:1.0.0@aar'){
transitive=true
}
这样它就包含了我所有的传递库。
但请注意,这实际上可能会导致依赖项(尤其是本地依赖项)之间发生冲突,可以使用exclude
tag.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)