假设我构建了一个LibraryA
并将其编译为LibA.jar
,那么我创建一个LibraryB
并将生成的LibA.jar
放入LibraryB/libs
,并且将其编译为LibB.jar
。
问题是,当我将LibB.jar
放入新的Android应用模块时,我无法直接引用LibA.jar
中的方法。看起来我只能引用LibB.jar
中的方法,但LibB.jar
编译时带有LibA
依赖项。有什么方法可以解决这个问题吗?
答案 0 :(得分:0)
假设您拥有对LibraryA
和LibraryB
的所有源代码访问权限,您可以通过将LibraryA
作为LibraryB
的单独模块来解决此问题。因此,当您想在项目中加入LibraryB
时,您也必须包含LibraryA
。
如果LibraryA
中隐藏了LibraryB
供外部使用,您可以制作公开方法,从LibraryA
获取LibraryB
,例如getLibraryA().methodA1()
}。
答案 1 :(得分:0)
您可以使用.aar来包装库。 .aar的格式允许在内部“嵌入”依赖项。有一个Gradle lib on GitHub可以帮助解决这个问题。如果您使用Maven repos,则LibraryB的POM文件可以描述其依赖项LibraryA。