目标“$ {build.target}”在项目“AppNameA”中不存在

时间:2012-02-27 22:38:26

标签: android eclipse ant build

错误位于底部

我在-build-setup任务期间尝试运行build.xml文件(由android sdk生成)以获取具有一些依赖项的项目时遇到此错误,我尝试运行的任务是{ {1}}。我正在使用eclipse使用自动构建功能运行此ant文件。我将此-compile文件指定为项目的构建器,并将其设置为唯一的bulider。然后将目标设置为以下内容:

build.xml

两个依赖项也使用生成的<stringAttribute key="org.eclipse.ant.ui.ATTR_ANT_AFTER_CLEAN_TARGETS" value="-compile,"/> <stringAttribute key="org.eclipse.ant.ui.ATTR_ANT_AUTO_TARGETS" value="-compile,"/> <stringAttribute key="org.eclipse.ant.ui.ATTR_ANT_CLEAN_TARGETS" value="clean,"/> <stringAttribute key="org.eclipse.ant.ui.ATTR_ANT_MANUAL_TARGETS" value="clean,nodeps,debug,"/> 文件。我的所有build.xml个文件都超出了build.xml任务。在底部发布的是-compile文件中的-compile任务。

依赖项目是android库,我在eclipse中配置了他们的ant构建器,如下所示:

build.xml

为什么我一直收到此错误以及如何解决此问题?



我目前的工作

如果我将<stringAttribute key="org.eclipse.ant.ui.ATTR_ANT_AFTER_CLEAN_TARGETS" value="nodeps,debug,"/> <stringAttribute key="org.eclipse.ant.ui.ATTR_ANT_AUTO_TARGETS" value="nodeps,debug,"/> <stringAttribute key="org.eclipse.ant.ui.ATTR_ANT_CLEAN_TARGETS" value="clean,"/> <stringAttribute key="org.eclipse.ant.ui.ATTR_ANT_MANUAL_TARGETS" value="debug,"/> 的目标更改为以下内容,则可以正常使用。但是,我不想这样做...当你真正想要的是在这些点进行编译时,调试需要太长时间。

AppNameA

以下是确切错误:

<stringAttribute key="org.eclipse.ant.ui.ATTR_ANT_AFTER_CLEAN_TARGETS" value="debug,"/>
<stringAttribute key="org.eclipse.ant.ui.ATTR_ANT_AUTO_TARGETS" value="debug,"/>
<stringAttribute key="org.eclipse.ant.ui.ATTR_ANT_CLEAN_TARGETS" value="clean,"/>
<stringAttribute key="org.eclipse.ant.ui.ATTR_ANT_MANUAL_TARGETS" value="clean,nodeps,debug,"/>

BUILD FAILED C:\Users\myusername\android-sdks\tools\ant\build.xml:485: The following error occurred while executing this line: Target "${build.target}" does not exist in the project "AppNameA". 文件中的-compile任务。

(基本上和原版一样,有一个小改动......)

build.xml

2 个答案:

答案 0 :(得分:2)

我发现了问题。

${build.target}实际上是在-set-debug-mode-set-release-mode任务中设置的。因此,在直接调用-compile任务时,它不会将这些任务中的任何一个称为依赖项。

因此,${build.target}实际上从未设置过。

此解决方法是覆盖其中一个任务,并在未设置时设置${build.target}。将它设置为您批准的默认值。

答案 1 :(得分:0)

在build.xml文件中未设置名为 java.target 的属性。

我认为以下ANT任务抛出了消息,该任务有一个名为“target”的属性:

<javac encoding="${java.encoding}"
        source="${java.source}" target="${java.target}"
        debug="true" extdirs="" includeantruntime="false"
        destdir="${out.classes.absolute.dir}"
        bootclasspathref="android.target.classpath"
        verbose="${verbose}"
        classpath="${extensible.classpath}"
        classpathref="jar.libs.ref"
        excludes="${filesToExcludeFromCompile}"
        failonerror="true"
    >