这个让我难过。我显然遗漏了一些东西,但我无法弄清楚是什么。
我有一个库(不是Android库 - 只是一个常规的Java库项目),而后者又使用其他库。所以,设置是:
myApi.jar
|
+-- com/myapi/ ... (.class files here).
|
+-- libs/
|
+-- lib1.jar
+-- lib2.jar
现在,当我将myApi.jar
包含在Android项目的libs目录中的项目中时,例如MyAndroidProject/libs
,只有com.myapi. ...
类包含在classes.dex
中文件。 lib1.jar和lib2.jar中的类不包含在classes.dex
显而易见的解决方法是从myApi.jar文件中删除lib1.jar和lib2.jar;而是将它们放在MyAndroidProject/libs
中。但是,这意味着myApi的用户现在必须知道要在构建路径上放置其他JAR文件。这是我希望避免的事情。
那么,我需要做些什么特别的事情来包含classes.dex
文件中库JAR内部使用的JAR文件吗?
答案 0 :(得分:1)
但是,这意味着myApi的用户现在必须知道在构建路径上还有其他JAR文件。这是我希望避免的事情。
在这里,Android的行为与普通的Java相同 - 如果myApi.jar
支持Swing应用程序,则需要分发所有JAR或将所有JAR合并为一个。 Android也是如此。欢迎您将依赖JAR中的所有类折叠到您自己的JAR中,或者重新使用JAR的项目也将依赖项添加为它们自己的依赖项。
请注意,合并JAR内容可能会产生技术或许可影响,因此请确保这是您真正想要做的事情。