Ant каждый раз перестраивает библиотечные проекты

У меня есть проект Android, который включает в себя два проекта библиотеки Android.

Я использую команду ant debug для сборки проекта, и это занимает около 1 минуты 20 секунд. Я подсчитал, что 17 секунд используются для компиляции первого проекта библиотеки Android и 42 секунды используются для компиляции второго проекта библиотеки Android.

Поскольку эти два проекта зависимостей редко обновляются, нет необходимости каждый раз компилировать их.

Как я могу избежать компиляции муравьями двух проектов библиотеки Android для каждой сборки?


person Giorgio    schedule 07.07.2012    source источник
comment
Вы можете использовать ant в сочетании с управлением зависимостями ivy. Или переключитесь с ant на maven с собственным управлением зависимостями.   -  person Joop Eggen    schedule 25.08.2012


Ответы (3)


Добавьте dont.do.deps=1 к вашему local.properties (или передайте это свойство муравью другим способом)

person rkapl    schedule 25.08.2012

Вот как проект Android Library разработан и должен работать в данный момент, он всегда компилируется косвенно вместе с компиляцией основного проекта приложения, см. это официальное руководство для разработчиков:

Однако проект библиотеки отличается от проекта стандартного приложения Android тем, что его нельзя скомпилировать напрямую в собственный .apk и запустить на устройстве Android. Точно так же вы не можете экспортировать проект библиотеки в автономный файл JAR, как вы сделали бы для настоящей библиотеки. Вместо этого вы должны скомпилировать библиотеку косвенно, сославшись на библиотеку в зависимом приложении и создав это приложение.

... ...

Соображения по разработке

  • Вы не можете экспортировать проект библиотеки в файл JAR

    Библиотека не может распространяться в виде двоичного файла (например, файла JAR). Это будет добавлено в будущей версии SDK Tools.

Как я могу избежать компиляции муравьями двух проектов библиотеки Android для каждой сборки?

То, о чем вы говорите, - это предварительно скомпилированный файл jar. Здесь есть несколько сообщений, предлагающих использовать функцию экспорта Eclipse или автоматически сгенерированный jar в каталоге bin проекта библиотеки, это может работать в некоторых простых случаях, например, проект библиотеки содержит чисто файл Java, но не будет работать, если проект библиотеки становится более сложным, содержащим файлы ресурсов Android. В этом случае есть грязный хак вроде этот который, по IMO, вызывает больше проблем, чем решает.

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

person yorkw    schedule 26.08.2012

У меня были проблемы с медленной компиляцией Android, когда в моем проекте были библиотеки, и я решил это, применив переключатель «--incremental» к инструменту dex. См. этот вопрос на SO.

person mav    schedule 28.08.2012