在eclipse中使用Android build.xml?

时间:2011-02-27 20:34:46

标签: java android eclipse build.xml

我有一个具有Ant构建文件的android项目。它通过命令行很好用:

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

但是当我尝试在eclipse中使用它时,build.xml有一个红色的X。

<?xml version="1.0" encoding="UTF-8"?>
<project name="MyWonderfulProject" default="help">
带有错误的

<project带有下划线:此项目中不存在默认目标帮助

似乎互联网上的其他人都有这个问题,而且似乎是因为build.xml正在使用来自此构建文件导入的多个嵌套的特定于android的文件的指令。

我的工作区中有其他项目使用Eclipse的构建机制,所以我知道我的环境能够编译,运行和部署Android应用程序而不会出现问题。但是这个构建文件给我带来了麻烦。

修复是什么?

6 个答案:

答案 0 :(得分:13)

选项1:

在build.xml文件中导入Android ant模板文件。假设您在sdk.dir中定义了local.properties并指向您的Android安装目录,请在项目元素下添加以下内容:

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

选项2:

要在Eclipse ant视角中实际使用Android ant目标,以上内容将无济于事。似乎有一些普遍的级别不兼容性,我还没有想到要完全解决,但是为了让事情工作在令人满意的水平,尽管你可以:

  • 将项目build.xml导入为构建器。项目属性 - &gt;建设者 - &gt;导入。
  • 请勿使用选项1 。而是忽略有关丢失模板的警告。全球属性 - &gt;蚂蚁 - &gt;编辑 - &gt;问题。将build.xml添加到名称。

这将对所有项目产生影响并忽略实际错误,因此它不是一个完美的解决方案。但是您可以在Eclipse中使用Android构建选项,也可以从命令行使用。

答案 1 :(得分:6)

在$ {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中,它应该可以正常工作。

答案 2 :(得分:5)

这不能解决问题,但它会让Eclipse停止阻碍你。转到Window > Preferences > Ant > Editor,然后选择Problems标签。检查ignore all buildfile problems框。

答案 3 :(得分:2)

我有同样的问题,我所做的只是转向日食

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

然后点击

Ignore All Build File Problems.

答案 4 :(得分:1)

这不是一个真正的答案,但是对于它的价值,我能够通过从工作区中删除eclipse项目,在我的项目目录中删除。*并重新开始来解决问题。 Eclipse FTW!

答案 5 :(得分:0)

如果您的build.xml有自己的帮助目标而不是依赖导入的目标,那么您需要将该目标放在行之前

<taskdef name="setup" classname="com.android.ant.SetupTask" classpathref="android.antlibs" />