Как создать приложение для Android с внешними библиотеками, используя ant? - PullRequest
18 голосов
/ 17 марта 2010

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

Сборочный файл генерируется нормально, но сборка завершается неудачно, потому что он не собирается с некоторыми jar-файлами, которые есть в моем каталоге libs.

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

Ответы [ 5 ]

32 голосов
/ 17 марта 2010

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

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

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

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

14 голосов
/ 07 июля 2011

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

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

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

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

8 голосов
/ 10 августа 2012

Я имел дело с подобной проблемой. Я создаю проект 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>

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

1 голос
/ 17 марта 2010

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

0 голосов
/ 29 августа 2013
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...