引用的Java项目编译更新不更新Android库项目

引用的Java项目编译更新不更新Android库项目,android,eclipse,android-library,Android,Eclipse,Android Library,我有一个Android ProjectA,它是我的主要应用程序,它引用了一个Android库ProjectB。库项目引用了一个标准的JavaProjectC,它是我的许多Java和Android项目的标准库。我将把这三个项目分别称为A、B和C 我的问题是,如果我对C项目进行更改,它将自动编译,但B不编译,因此a看不到更改。唯一的方法是手动清洁B。在Eclipse中有没有一种方法可以在编译C时强制B重新编译 将Eclipse3.6.2与ADT14和SDK14一起使用。我在ADT14中也遇到了这个问

我有一个Android ProjectA,它是我的主要应用程序,它引用了一个Android库ProjectB。库项目引用了一个标准的JavaProjectC,它是我的许多Java和Android项目的标准库。我将把这三个项目分别称为A、B和C

我的问题是,如果我对C项目进行更改,它将自动编译,但B不编译,因此a看不到更改。唯一的方法是手动清洁B。在Eclipse中有没有一种方法可以在编译C时强制B重新编译


将Eclipse3.6.2与ADT14和SDK14一起使用。

我在ADT14中也遇到了这个问题。在我的例子中,我有较少的间接寻址项目A是普通java库而不是android库,项目B是android应用程序

真正有趣的是,我有两个ProjectB和两个android应用程序,其中一个正在工作。另一个版本是一个完全相同的版本,对beta版做了一些小改动,包括一个项目文件的副本

它编译得很好,但未能在测试版上打包库文件

我删除了项目,但没有删除文件,并重新添加了它。然后,我还重新配置了应用程序的构建路径,并删除了java库。然后我重新配置了它并重新添加了它

清理/构建,然后重新开始正确打包


我还做了前面提到的构建顺序技巧……它本身并没有帮助,但可能有助于后来的eclipse刷新工作,确保库项目在其他项目之前构建。

我对ADT 20也有同样的问题。将评论与接受的答案结合起来,我发现将库项目移动到project Properties->Java Build Path->Order and Export中的第一个解决了这个问题。

我用project B android引用project A常规Java尝试了接受的答案。 在删除项目B并将其重新添加到工作区、从项目B的必需项目中删除项目A、重新添加项目B、在项目A的订单/导出中勾选项目B并将其移动到顶部,最后清除/构建所有项目之后,我的问题没有得到解决。 在清洁和建造之后,一切都是最新的。但当IU在A中改变任何东西时,B中的变化不可见

我的解决方案:

在android项目的构建路径中: -选择源选项卡 -单击链接源 -选择java项目的src文件夹。将其命名为linkedLibrarySource -应用,清洁构建 -成功

这个解决方案不太理想,我建议先尝试其他解决方案

有一个缺点:eclipse现在将linkedLibrarySource文件夹添加到android项目中。它包含与库的src文件夹相同的文件。Eclipse认为它们是不同的。这意味着您可以在两个位置编辑相同的文件,从而导致冲突。所以不要碰linkedLibrarySource


我使用ADT 20

您是运行最新的ADT 14还是运行较早的ADT 12或更低版本?只是在ADT14中处理库的方式完全不同,你看,是的,我正在运行的ADT 14,与之前相比,libs是如何处理的?提交了一份bug报告,你可以自己测试,下载ADT12和14之间的3个项目。从来没有13是12带来了Android的源代码wheras 14分别编译Android库,并将它们作为JAR文件带到您的项目中。我的猜测是,因为它没有看到库项目B的变化,所以它没有重新制作B的jar。解决方案是“清理”您的项目,这将迫使它们全部重建-请注意,您需要先将它们按字母顺序排列在库中,或者使用“设置/常规/生成顺序”选项卡告诉它首先编译哪些库。