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

时间:2011-10-26 21:30:00

标签: android eclipse android-library

我有一个Android项目(A),这是我的主要应用程序,它引用了一个Android库项目(B)。 Library Project引用了一个标准的Java Project(C),它是我的许多Java和Android项目的标准库。我将这三个项目称为A,B和C.

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

将Eclipse 3.6.2与ADT 14和SDK 14结合使用。

3 个答案:

答案 0 :(得分:2)

我也有ADT 14的这个问题。在我的情况下,我有更少的间接(项目A是PLAIN java库(不是android库),项目B是android应用程序。)

真正有趣的是我有两个项目“B”(两个Android应用程序),一个正在工作。另一个是精确的副本(对于测试版本进行了少量更改),包括项目文件的副本。

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

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

清洁/构建,它开始再次正确包装。

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

答案 1 :(得分:0)

我对ADT 20有完全相同的问题。将评论与已接受的答案相结合,我发现将库项目移动到项目属性中的第一个 - > Java构建路径 - >订单和出口解决了它。

答案 2 :(得分:0)

我尝试了项目B(android)引用项目A(常规java)的已接受答案。 将项目B移除并重新添加到工作区后,从项目B的所需项目中删除项目A,重新添加项目B,在项目A的订单/导出中勾选项目B并将其移至顶部,最后清理/构建所有项目,问题没有解决。 在清洁和构建之后,所有都是最新的。但是当IU改变A中的任何内容时,B中都看不到变化。

我的解决方案:

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

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

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

我使用ADT 20