我现在想让Foolib依赖于barlib,但barlib确实使用了资源,因此我无法将barlib打包为JAR.相反,它被打包为AAR.我是否有可能让Foolib依赖barlib但继续将Foolib打包为JAR?或者,在Foolib中具有AAR依赖性是否也迫使我将其作为AAR?
解决方法 如果您有一个包含JAR文件和AAR文件作为依赖项的项目(请参阅下面的注释),那么您可以将特定于AndroID的JAR作为依赖于AndroID API中的类的依赖项,尽管JAR文件不能包含AndroID资源.你已经知道了.仅仅因为它依赖于AndroID类并不意味着它需要打包为AAR.在这里,我所说的可能是一个包含许多JAR和AAR依赖项的单模块项目. JAR文件只是类文件的集合(可能是非AndroID资源和其他文件),并且没有依赖感,因此没有什么可以破解的.当需要进行构建时,构建器只是将所有内容捆绑在一起并打包它,并且不会检查JAR是否对其他类具有无法解析的依赖性 – 您将在运行时发现类加载器异常.
如果您在IDE中讨论多模块项目中的库模块,那么这是另一回事.如果你有一个可以编译成普通JAR的模块A(它在构建文件中使用apply plugin:’java’语句),那么它不能依赖于AndroID模块(apply plugin:’android-library’)编译成AAR.这可能永远不会被修复,或者至少在可预见的未来不会被修复:这是因为AndroID模块具有更复杂的源文件夹概念,而Gradle中的Java插件无法理解AndroID的源集.
反过来也是如此–AndroID模块可以依赖普通的Java模块.
注意
由于Gradle构建器中尚未解决的限制,您无法以与构建文件中的JAR相同的方式访问本地AAR(通过编译文件(…)语句引用它们);你必须欺骗Gradle认为他们在某种Maven存储库中(可能将它们放在一个真正的Maven存储库中,可以是本地存储库).如果需要,请参阅Adding local .aar files to my gradle build以获取解决方法.
总结以上是内存溢出为你收集整理的Android库JAR可以依赖Android库AAR吗?全部内容,希望文章能够帮你解决Android库JAR可以依赖Android库AAR吗?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)