Использование Android build.xml в Eclipse? - PullRequest
23 голосов
/ 27 февраля 2011

У меня есть проект Android, в котором есть файл сборки Ant. Отлично работает через командную строку:

rascher@coltrane:~/git/$ ant
Buildfile: build.xml
    [setup] Android SDK Tools Revision 8
    [setup] Project Target: Android 2.1-update1
    [setup] API level: 7
    [setup] 

    ... etc etc etc ...

Но когда я пытаюсь использовать это в затмении, build.xml имеет красный X.

<?xml version="1.0" encoding="UTF-8"?>
<project name="MyWonderfulProject" default="help">

<project подчеркнуто с ошибкой: Целевая справка по умолчанию не существует в этом проекте

Кажется, что у всех в Интернете есть эта проблема, и это, вероятно, вызвано тем фактом, что build.xml использует директивы, которые приходят из нескольких вложенных файлов для Android, которые импортирует этот файл сборки.

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

Что за исправление?

Ответы [ 6 ]

13 голосов
/ 01 июня 2011

Опция 1:

Импорт файла шаблона Android ant в файл build.xml.Предполагая, что sdk.dir определено в local.properties и указывает на каталог установки Android, добавьте следующее в элемент проекта:

    <import file="${sdk.dir}/platforms/${target}/templates/android_rules.xml" />

Опция 2:

Для фактического использования AndroidМуравьиные мишени в Eclipse Ant, вышесказанное не поможет.Кажется, есть некоторая несовместимость общего уровня, которую я не решил полностью решить, но чтобы заставить вещи работать на удовлетворительном уровне, хотя вы можете:

  • Импортировать проект build.xml как компоновщик,Свойства проекта -> Строители -> Импорт.
  • Не использовать опцию 1 .Вместо этого игнорируйте предупреждение об отсутствующем шаблоне.Глобальные свойства -> Муравей -> Редактор -> Проблемы.Добавьте build.xml к именам.

Это повлияет на все проекты и проигнорирует фактические ошибки, поэтому это не идеальное решение.Но вы можете использовать параметры сборки Android внутри Eclipse, а также из командной строки.

6 голосов
/ 25 октября 2011

В файле $ {sdk.dir} /tools/ant/main_rules.xml, как показано ниже, определена одна цель с именем 'help',

<target name="help">

    <echo>Android Ant Build. Available targets:</echo>
    <echo>   help:      Displays this help.</echo>
    <echo>   clean:     Removes output files created by other targets.</echo>
    <echo>   compile:   Compiles project's .java files into .class files.</echo>
    <echo>   debug:     Builds the application and signs it with a debug key.</echo>
    <echo>   release:   Builds the application. The generated apk file must be</echo>
    <echo>              signed before it is published.</echo>
    <echo>   install:   Installs/reinstalls the debug package onto a running</echo>
    <echo>              emulator or device.</echo>
    <echo>              If the application was previously installed, the</echo>
    <echo>              signatures must match.</echo>
    <echo>   uninstall: Uninstalls the application from a running emulator or</echo>
    <echo>              device.</echo>
</target>

скопируйте этот файл в свой build.xml, и он должен работать.

5 голосов
/ 02 июня 2011

Это не решает проблему, но заставит Eclipse перестать мешать вам.Перейдите на Window > Preferences > Ant > Editor и выберите вкладку Problems.Установите флажок ignore all buildfile problems.

2 голосов
/ 01 мая 2012

У меня та же проблема, и все, что я сделал, - это пошел на затмение

Window->Preferences->Ant->Editor->Problems

и нажал

Ignore All Build File Problems.
1 голос
/ 18 марта 2011

На самом деле это не ответ, но, несмотря на это, я смог устранить проблему, удалив проект eclipse из рабочей области, удалив * в каталоге проекта и начав заново. Затмение FTW!

0 голосов
/ 28 февраля 2011

Если ваш build.xml имеет свою собственную цель помощи, а не полагается на импортированную, тогда вам нужно поставить эту цель перед строкой

<taskdef name="setup" classname="com.android.ant.SetupTask" classpathref="android.antlibs" />
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...