我有一个Android项目和一个依赖于它的android库项目(我自己的)。我正在使用maven,包括maven-android-plugin,用于自动构建,Eclipse用作我的IDE,使用m2eclipse和m2e-android来连接两者。
在大多数情况下,它工作正常:我可以从命令行执行maven构建,也可以从Eclipse构建。
但是,我半定期在Eclipse中为主要的Android应用程序项目获取构建错误,该项目显示“项目配置与pom.xml不同。运行Maven->更新项目或使用快速修复。 ”。当我这样做时,似乎搞乱了应用程序的project.properties文件中从应用程序到库项目的相对路径。具体来说,库项目的相对路径从正确的路径更改为一个,反映了Eclipse工作区中项目的相对位置。
示例:磁盘布局如下所示:
/库
- / my-lib
/应用
- / my-app
因此,从my-app到my-lib的正确相对路径是../../ libs / my-lib。
然而,在我的Eclipse工作区中,my-app和my-lib是兄弟姐妹,当我做Maven-Update项目时,它会更新project.properties,以便my-lib的相对路径(即“android.library。 reference.1 =“)变成”../ my-lib“。
因此,在Eclipse中,我将主应用程序中的所有引用的编译错误发送到库项目中的符号。如果我然后转到Eclipse中的Android属性对话框,在列出库项目的底部,我的库项目旁边有一个红色的X.如果我删除它并将其添加回来,从而更正project.properties中的相对路径,那么一切都很好。
这有点令人讨厌。知道怎么解决吗?注意:虽然我所描述的相对路径的更改是正确的,但这只是一个理论,它与Eclipse工作区中项目的相对位置有关 - 这可能是巧合。