从Gradle运行Android的build.xml时,项目“LibA”中不存在目标“$ {build.target}”

时间:2011-12-06 11:14:11

标签: android ant gradle build.xml

我有一个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和build包含项目的build.xml,方法如下:

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

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

ant.importBuild "build.xml"


当我使用“release”目标运行此脚本时,我从Android的build.xml文件中收到以下错误:

[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>

左,问题是:有没有人知道如何摆脱这个错误或如何在Gradle中正确使用Android的build.xml?

Gradle-android-plugin目前因为android sdk&gt; = r14而被打破,因此我根据它已经辞职了。我使用sdk工具r15。

更新:

似乎没有

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

,也不

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

正在Android的build.xml文件中调用,但我不知道为什么。

3 个答案:

答案 0 :(得分:1)

我对此环境的细节一无所知,但错误消息表示未定义预期属性 - build.target - 。

我注意到你的项目属性文件中有这个:

# Project target.
target=android-5

如果你改成它,它会起作用吗?

# Project target.
build.target=android-5

答案 1 :(得分:0)

我遇到了同样的问题并解决了包括:

build.target =释放

在project.properties的末尾,如Orzech所建议。

答案 2 :(得分:0)

我知道这是一个老帖子,但是我的问题仍然存在于某人身上。 build.target是为Ant构建器定义的任何目标。 如果您使用的是Eclipse,则可以按如下方式定义目标:

菜单 - &gt;运行 - &gt;外部工具 - &gt;外部工具配置 - &gt;目标

您可以选择Ant构建的实际目标。

请注意,如果没有定义,Eclipse将强制执行帮助目标。

更多信息请点击此处:http://help.eclipse.org/juno/index.jsp?topic=%2Forg.eclipse.platform.doc.user%2Fconcepts%2Fconcepts-exttools.htm