我有一個現有的項目,使用我的IDE構建良好。我想使用「android update」命令爲這個項目生成一個ant構建文件。如何使用ant建立外部庫的Android應用程序?
構建文件生成正常,但構建失敗,因爲它沒有與我在我的libs目錄中有一些jarfiles構建。
我想找出正確的方式告訴ant與我的libs目錄中的一些外部jar文件構建。我應該怎麼做?它是build.properties中的屬性嗎?我需要修改build.xml嗎?或者是否有完全不同的解決方案?
我有一個現有的項目,使用我的IDE構建良好。我想使用「android update」命令爲這個項目生成一個ant構建文件。如何使用ant建立外部庫的Android應用程序?
構建文件生成正常,但構建失敗,因爲它沒有與我在我的libs目錄中有一些jarfiles構建。
我想找出正確的方式告訴ant與我的libs目錄中的一些外部jar文件構建。我應該怎麼做?它是build.properties中的屬性嗎?我需要修改build.xml嗎?或者是否有完全不同的解決方案?
,但因爲它不是 建築,一些jarfiles中我有我的 libs目錄生成失敗。
而你的錯誤信息是......什麼?我懷疑你可能會誤解錯誤信息。
我想弄清楚的正確方法 告訴螞蟻一些 外部jar文件建立在我的庫 目錄。我應該怎麼做?
只要將它們放在libs/
中,Ant會將所有內容添加到您的構建路徑中。示例參見this project和this project和this project。
但是,如果您打算進一步修改您的構建腳本,那麼我同意Mark的意見,而不是您需要將其定製。將任務從android/platforms/android-PLATFORMVERSION/templates/android_rules.xml傳送到您的build.xml並修改您想要修改的任何內容。包括外部庫的位置。
我花了一段時間試圖讓Facebook API與螞蟻一起工作。我的訣竅是將其添加到我的default.properties文件中。
android.library.reference.1=../Facebook
其中../Facebook包含AndroidManifest.xml等。真正的關鍵是相對路徑。不要使用絕對路徑,因爲Ant似乎將您的項目目錄視爲根。
這應該適用於您從源代碼中包含的其他庫項目。
我正在處理類似的問題。我使用標準Ant build.xml(由Android SDK生成)在Jenkins上構建Android項目。我也參考了另一個帶有一些共享域類的Java項目。在Eclipse中,它沒有問題。域項目是一個項目引用。然而在Jenkins上,這個domain.jar是由Maven構建的,它不能被Android項目訪問。
我終於解決它通過在build.xml文件的末尾添加這樣的:
<target name="-pre-build">
<copy todir="${jar.libs.dir}">
<fileset
dir="../path-to-another-project/target"
includes="*.jar" />
</copy>
</target>
此副本從另一個項目的目標目錄中的所有jar文件到我的Android項目的「庫」目錄。 -pre-build Ant目標在Android編譯開始之前自動調用。
您應該將custom_rules.xml添加到與build.xml相同的目錄中,而不是更改build.xml。將-pre-build目標放在那裏,build.xml會自動導入它。 custom_rules.xml可以包含所有的前期和後期構建操作 – wallacer
啊,問題是,我的一個依賴是一個項目的依賴,而不是一個罐子依賴。我會解決這個問題。 – emmby
感謝commonsware。如果你想刺探後續,我在這裏有另一個問題:http://stackoverflow.com/questions/2466437/how-to-build-an-android-test-app-with-a -dependency-on-another-app-using-ant – emmby
是的,我看到了一個。我不是Android測試框架的粉絲,所以我不知道那裏的答案。抱歉! – CommonsWare