Подтвердить что ты не робот

Как создать приложение для Android с внешними библиотеками с помощью ant?

У меня есть существующий проект, который отлично работает с использованием моей IDE. Я хотел бы использовать команду android update для создания файла сборки ant для этого проекта.

Файл сборки генерируется отлично, но сборка не выполняется, потому что она не создает некоторые jarfiles, которые у меня есть в каталоге libs.

Я хотел бы найти правильный способ сообщить ant для сборки с некоторыми внешними файлами jar в моем каталоге libs. Как мне это сделать? Это свойство в build.properties? Мне нужно каким-то образом изменить build.xml? Или существует другое решение?

4b9b3361

Ответ 1

но сборка не выполняется, потому что она не с некоторыми jarfiles, которые у меня есть мой каталог libs.

И ваше сообщение об ошибке... что? Я подозреваю, что вы можете неправильно интерпретировать сообщение об ошибке.

Я хотел бы найти правильный способ сказать ant, чтобы построить с некоторыми внешние файлы jar в моих библиотеках каталог. Как мне это сделать?

Просто поместите их в libs/, так как ant добавит все в ваш путь сборки. См. этот проект и этот проект, и этот проект для примера.

Ответ 2

Я потратил некоторое время, пытаясь заставить API Facebook работать с ant. Трюк для меня заключался в том, чтобы добавить это в мои файлы default.properties.

android.library.reference.1=../Facebook

Где../Facebook содержит AndroidManifest.xml и т.д. Настоящий ключ является относительным путем. Не используйте абсолютный путь, потому что Ant, похоже, обрабатывает ваш каталог проекта как корень.

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

Ответ 3

Я имел дело с подобной проблемой. Я создаю проект Android на Jenkins, используя стандартный Ant build.xml(сгенерированный Android SDK). У меня также есть ссылка на другой проект Java с некоторыми классами общего домена. В Eclipse нет проблем с этим. Проект домена - это ссылка на проект. Однако на Jenkins этот домен .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>

Это копирует все банки из целевого каталога другого проекта в каталог "libs" моего проекта Android. Цель -pre-build Ant автоматически вызывается до начала компиляции Android.

Ответ 4

Я согласен с Mark, однако, если вы планируете еще больше модифицировать свою конструкцию script, то вам нужно сделать ее обычай. Принесите задачи из android/platform/android-PLATFORMVERSION/templates/android_rules.xml в ваш файл build.xml и измените все, что вы хотите изменить. Включая местоположение для внешних библиотек.