我第一次使用android ant build。我有一些库可以覆盖Android代码中的库。我可以在Eclipse中控制构建顺序,一切正常。当我使用ant构建构建时,它似乎是在我的覆盖之前首先导入android库,这导致编译错误,因为缺少常量,方法名称等。
有没有办法让我的库能够超越android的库,这样才能正确构建?
答案 0 :(得分:1)
经过多次搜索(以及无用的摩托罗拉文档)后,我找到了一种方法,可以在使用默认的build.xml文件的同时将我的jar放在android前面。
android库作为bootclasspathref进入javac任务。这会在标准罐之前进行评估,这就是我遇到问题的原因。
稍后进行一些研究,我发现javac任务上的compilerarg设置为$ {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" />
对version-tag的更改非常重要,因此android不会在升级时自动销毁您的更改。