当我使用Ant来构建具有多个库的Android项目时,我的构建失败了

时间:2012-04-25 12:02:57

标签: java android ant jenkins

我有一个应用程序,其中包含总共10个项目:3个Java项目,6个Android项目和一个Android应用程序项目。我可以在Eclipse中构建它们而不会出错,但是当我在Jenkins中构建它们时,在编译最后一个项目时构建失败了。

以下是我用来进行构建的shell命令。

为了清楚起见,DrawCard和CameraModule是由CC_library3.0.3调用的库,而CC_library3.0.3是由MainApp调用的库项目。

android update lib-project -p ./DrawCard  -t "android-15"  
android update lib-project -p ./AppStar  -t "android-15"
android update lib-project -p ./CameraModule   -t "android-15"
android update lib-project -p ./CC_library3.0.3   -t "android-15" 
android update lib-project -p ./ISAd  -t "android-15"
android update lib-project -p ./Payment  -t "android-15"
android update project -p ./MainApp -t "android-15" -l ../CC_library3.0.3 -l ../ISAd -l ../Payment

echo 'source.dir=../android-vcard/src' > ./DrawCard/ant.properties
echo 'source.dir=../TianShu/src' > ./MainApp/ant.properties
echo 'source.dir=../Log4A/src' >> ./MainApp/ant.properties
cd ./MainApp
ant all clean debug

在这些命令之后,在构建MainApp时,该过程失败并显示以下消息:

[javac]Compiling 22 source files to /var/lib/jenkins/foobar/bin/classes
[javac]A.java : package a.b.c does not exist
....
[javac]B.java : can not find symble

.....
BUILD FAILED

我不明白为什么我收到这个错误。我检查了所有6个lib项目的/bin文件夹。每个包含一个classes.jar文件。为什么会发生这种情况,我该怎么办呢?

1 个答案:

答案 0 :(得分:1)

我认为你不能像你一样在android update project的同一个电话中提交多个库。我认为-l的每个条目都会默默地覆盖以前的条目。 尝试为每个库运行一次命令:

android update project -p ./MainApp -t "android-15" -l ../CC_library3.0.3
android update project -p ./MainApp -t "android-15" -l ../ISAd
android update project -p ./MainApp -t "android-15" -l ../Payment

之后打开./MainApp/project.properties并确保您有以下条目:

android.library.reference.1=../CC_library3.0.3
android.library.reference.2=../ISAd
android.library.reference.3=../Payment