我在使用Jenkins构建项目和引用Sherlock项目库时遇到了麻烦。
我可以在本地系统上使用ant构建项目。问题似乎是在构建服务器上引用Sherlock库。
我将一个环境变量传递给ant,其中包含Sherlock库项目的相对路径:
android.library.reference.1=../../buildlibraries/androidlibraries/sherlock/library
我得到这个错误。
**BUILD FAILED**
/SDK/android-sdk-macosx/tools/ant/build.xml:595:
The following error occurred while executing this line:
/SDK/android-sdk-macosx/tools/ant/build.xml:571:
../../buildlibraries/androidlibraries/sherlock/library resolve to a path with
no project.properties file for project /Users/Jenkins/buildlibraries/androidlibraries/sherlock/library
我检查和一个项目。属性文件在该位置不存在。
它有以下属性:
android.library=true
# Project target.
target=android-14
刚才我也遇到了同样的事情。我同时使用Windows和Mac进行开发。我想在两个平台上测试我的项目。它在我的Windows电脑上运行得很好,但在我的Mac电脑上就坏了。在我的Android应用程序(不是库项目)的Mac上,我看到我的库项目是这样引用的:
android.library.reference.1=LibraryProjects\my_lib_project
我把它改成下面一行,它工作得很好!
android.library.reference.1=LibraryProjects/my_lib_project
我通过编辑和签入项目解决了这个问题。属性文件:android.library.reference.1=../../buildlibraries/androidlibraries/sherlock/library
我不知道为什么它工作。为什么我要关心如果属性是由Jenkins传递的,而不是在项目的属性文件中声明的?
现在我的项目中有两条路径。属性文件:一个用于本地构建,一个用于Jenkins上的构建。
我也有类似的错误../google-play-services_lib解析到一个没有项目的路径。项目的属性文件。它必须在Jenkins CI (Cloudbees)中工作,所以没有手动项目。属性编辑。
我的解决方案是在Jenkins shell命令中用丑陋但工作的echo "android.library.reference.1=../../../..$ANDROID_HOME/extras/google/google_play_services/libproject/google-play-services_lib" >> project.properties
代替android update lib-project --path ...
。
我有这个问题,因为我没有使用android
工具下载google play服务包。当我检查我的android sdk目录($ANDROID_HOME)没有"$ANDROID_HOME/extras/google"文件夹。
我通过运行android
和下载"Google Play服务"来修复这个问题。