Целевой объект «$ {build.target}» не существует в проекте «LibA» при запуске Android build.xml из Gradle

У меня есть проект Android, который зависит от трех библиотек Android. Его файл project.properties выглядит следующим образом:

split.density=false
android.library.reference.2=..\\LibB
proguard.config=proguard.cfg
android.library.reference.1=..\\\\LibA\\\\
# Project target.
target=android-5
android.library.reference.3=../LibC


build.xml этого проекта используется только для того, чтобы зависеть от задач Gradle:

<target name="-pre-build" depends="preBuild" />
<target name="-pre-compile" depends="preCompile" />

<import file="${sdk.dir}/tools/ant/build.xml" />


и build.gradle включает build.xml проекта следующим образом:

ant.property(file: 'local.properties')

configurations {
    sdkDir = ant.properties['sdk.dir']
}

ant.importBuild "build.xml"


Когда я запустите этот скрипт с целью "release", я получаю следующую ошибку из файла build.xml Android:

[ERROR] [org.gradle.BuildExceptionReporter] Execution failed for task ':-build-setup'.
[ERROR] [org.gradle.BuildExceptionReporter] Cause: The following error occurred while executing this line:
[ERROR] [org.gradle.BuildExceptionReporter] Target "${build.target}" does not exist in the project "LibA".


, которая вызвана строкой 466 (содержащей "subant"):

<!-- compile the libraries if any -->
<if>
    <condition>
        <isreference refid="project.libraries" />
    </condition>
    <then>
        <echo>Building Libraries</echo>
        <subant
                buildpathref="project.libraries"
                antfile="build.xml"
                target="${build.target}"
                failonerror="true"/>
        <echo></echo>
        <echo>############################################</echo>
        <echo>**** Back to project ${ant.project.name} ****</echo>
        <echo>############################################</echo>
    </then>
</if>


Итак, вопрос: есть ли у кого-нибудь знаете, как избавиться от этой ошибки или как правильно использовать Android build.xml в Gradle?

Gradle-android-plugin на данный момент не работает для android sdk> = r14, и поэтому я отказался от этого. Пользуюсь sdk tools r15.

ОБНОВЛЕНИЕ:

Кажется, что ни

<target name="-set-release-mode" depends="-set-mode-check">

, ни

<target name="-set-debug-mode">

не вызываются в файле build.xml Android, но я не знаю почему.

7
задан Orzech 6 December 2011 в 13:27
поделиться