0
我第一次使用android ant構建。我有一些庫重寫Android代碼中的庫。我可以在Eclipse中控制構建順序,一切正常。當我使用ant編譯構建時,它似乎是在我的覆蓋之前先導入android庫,由於缺少常量,方法名稱等原因導致編譯錯誤。Android構建路徑順序
有沒有一種方法可以讓我的庫提前的Android的人,所以它會正確構建?
我第一次使用android ant構建。我有一些庫重寫Android代碼中的庫。我可以在Eclipse中控制構建順序,一切正常。當我使用ant編譯構建時,它似乎是在我的覆蓋之前先導入android庫,由於缺少常量,方法名稱等原因導致編譯錯誤。Android構建路徑順序
有沒有一種方法可以讓我的庫提前的Android的人,所以它會正確構建?
經過大量搜索(以及無用的摩托羅拉文檔)之後,我發現了一種方法,可以在仍使用默認build.xml文件的情況下將我的jar放在android前面。
android庫作爲bootclasspathref進入javac任務。這會在標準瓶子之前進行評估,這就是我遇到問題的原因。
稍後的一些研究,我看到compilerarg上的javac任務被設置爲$ {java.compilerargs}。我對我的項目中的build.xml進行了一些閱讀,它調用了默認的build.xml,它告訴你如何覆蓋默認的build.xml中的東西。於是,在一天結束的時候,我改變了三行:
<!-- version-tag: custom -->
<!-- add the custom bluetooth libraries ahead of Android -->
<property name="java.compilerargs" value="-Xbootclasspath/p:/home/thomash/svn/air-android/branches/ticket_2198a/libs/BluetoothGatt.jar:/home/thomash/svn/air-android/branches/ticket_2198a/libs/BluetoothGattService.jar" />
的變化版本標籤很重要,這樣的Android不自動銷燬的升級更改。
是[this](http://stackoverflow.com/questions/939757/ant-classpath-order)你在找什麼? – fifarunnerr
「我有一些庫覆蓋了Android代碼中的庫」 - 這是行不通的,因爲您在運行時不控制類路徑,所以框架中的庫將取代您的重複項,合格的班級名稱。 – CommonsWare
@CommonsWare我不認爲這是真的,因爲我們已經在從eclipse運行的部署中執行此操作。我們只是試圖用Ant來做同樣的事情。 – Thom