如何解决 Android 项目依赖问题?

3
我在Eclipse中有以下项目:
A(Android项目) = >B(Java项目)= >C(Java项目)
其中“=>”符号表示符号左侧的项目依赖于符号右侧的项目,且B项目的构建路径始终包含C项目。
如果我将B和C项目都包含在A项目的构建路径下,则A可以正常运行。
然而,如果我只将B项目包含在A项目的构建路径下而不包含C项目,则A在运行时会崩溃。
是否有解决上述问题的替代方案,而不必将C项目包含在A项目的构建路径下,因为A与C之间没有直接依赖关系?
请注意,不能将C转换为Android项目,以便允许其他依赖它的Java项目(未在此处说明)也能运行。
3个回答

0

不,你不能解决基本问题,尽管有很多变通方法。

必须包含所有内容,否则会出现classnotfound异常。您可以将项目C构建为JAR文件,并将其包含在lib路径中,然后您就不必依赖于该项目了。将项目B构建为JAR文件,您可以开发Android项目,而无需引用任何Eclipse Java项目。

这样想,如果您下载一个例如Farmors超级库far.jar的jar文件,我的库有其他依赖项,您也必须获取它们以及它们的依赖项等等递归地进行,这就是为什么我们有像Maven这样的高级工具来处理所有这些依赖关系混乱的原因。


0

我尝试将工程C从工程B导出,但问题仍然存在。 - Lopper

0

我认为在你的情况下,最好的解决方案是将你的项目移植到使用像mavenivy这样的工具。这些工具可以帮助你管理依赖关系问题。当然,这些工具提供了许多其他功能,例如改进构建过程、过滤资源、自动部署构件、创建报告等。

我经常使用maven,并尝试解释如何解决你的问题。首先,你可以将所有项目(包括Android项目)都转换成maven项目,并定义项目之间的关系(A依赖于BB依赖于C),只需设置maven项目中最重要的项目“pom.xml”文件即可。

在[此链接][3]中,你可以阅读有关“依赖机制介绍”的内容。其思想很简单:你需要定义每个项目所需的组织结构,这可以是网络上的构件或库。Maven会下载所有内容并构建每个项目。在你的情况下,可能需要构建C项目,该项目一旦正确配置后,将自动被B项目使用,以此类推。

注意理解如何管理依赖关系,因为这是关键。

顺便提一下,在Android项目中,你可能需要使用[Android Maven插件][4],它非常适合你的目的。

祝你好运!


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接