2014-01-20 3 views
0

Я использую сборку андроидов в первый раз. У меня есть некоторые библиотеки, которые переопределяют библиотеки в коде Android. Я могу контролировать порядок сборки в Eclipse, и все работает нормально. Когда я строю с помощью сборки муравьев, он, кажется, импортирует библиотеки андроида в первую очередь перед моими переопределениями, что вызывает ошибки компиляции из-за отсутствующих констант, имен методов и т. Д.Порядок создания дорожки Android

Есть ли способ, которым я могу поместить свои библиотеки вперед из андроидов, чтобы он правильно строился?

+0

Is [this] (http://stackoverflow.com/questions/939757/ant-classpath-order) что вы ищете? – fifarunnerr

+1

«У меня есть некоторые библиотеки, которые переопределяют библиотеки в Android-коде» - это не работает, поскольку вы не контролируете путь к классам во время выполнения, и поэтому библиотеки в рамках этой программы заменяют ваши дубликаты, квалифицированное имя класса. – CommonsWare

+0

@CommonsWare Я не думаю, что это правда, потому что мы уже делаем это с развертыванием, которое запускается из eclipse. Мы просто пытаемся сделать то же самое с Ant. – Thom

ответ

1

После долгих поисков (и бесполезных документов Motorola) я нашел способ получить мои банки перед андроидом, все еще используя файл build.xml по умолчанию.

Андроидные библиотеки входят в задачу javac как bootclasspathref. Это оценивается перед стандартными баночками, поэтому у меня возникла проблема.

Некоторые исследования позже, я вижу, что 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" /> 

Переход к версии тега является важным, так андроид автоматически не уничтожить ваши изменения в обновлении.

Смежные вопросы