如何使用ant构建android

时间:2013-04-25 15:46:25

标签: android ant

我想为我的项目设置一个ant build。我找到了一个教程,说我需要编写以下命令才能为ant build做准备:

android update project -p 

然后我得到了结果

Updated local.properties
Updated file ./proguard-project.txt
It seems that there are sub-projects. If you want to update them
please use the --subprojects parameter.

所以如果我尝试

android update project -p . --subprojects

然后我得到:

Updated local.properties
Updated file ./proguard-project.txt
Error: The project either has no target set or the target is invalid.
Please provide a --target to the 'android update' command.

如果我尝试

ant release

我得到了

sdk.dir is missing. Make sure to generate local.properties using 'android update project' or to inject it through an env var

有人可以帮助我用ant设置项目。 感谢

2 个答案:

答案 0 :(得分:14)

我也有同样的问题 我的问题问题通过以下命令解决了。

android update project --path . --subprojects --target android-19


ANT会自动将您的 sdk.dir 设置为正确的 不要在 local.properties中添加任何内容。

# This file is automatically generated by Android Tools.
# Do not modify this file -- YOUR CHANGES WILL BE ERASED!
#
# This file must *NOT* be checked into Version Control Systems,
# as it contains information specific to your local configuration.

# location of the SDK. This is only used by Ant
# For customization when using a Version Control System, please read the
# header note.

答案 1 :(得分:0)

确保在项目中设置目标(主项目和库)。

在Eclipse上: 右键单击项目 - >属性 - > Android并选择目标SDK。这意味着您要定位的Android SDK版本。如果你看一下manifest.xml,你应该看到几乎在开头:

<uses-sdk
    android:minSdkVersion="9"
    android:targetSdkVersion="17" />

这是您项目的目标版本,通常建议尽可能最高(最新)。

之后,请确保文件project.properties的行与此类似:

target=Google Inc.:Google APIs:17

ANT将读取此文件以了解项目的目标。您可以手动添加该行。实际上,如果你在运行android update project -p . --subprojects

之前在Eclipse中设置项目的目标(如上所述),我很确定会自动包含它

关于此错误:

sdk.dir is missing. Make sure to generate local.properties using 'android update project' or to inject it through an env var

这意味着您没有定义sdk.dir属性,该属性应该指向文件系统中的android sdk根目录。运行android update project -p . --subprojects后,应自动为所有项目生成。它可能不是由于先前的错误。因此,请检查所有项目中的local.properties文件,并确保其中包含与此类似的行:

sdk.dir=/home/path/to/android/sdk/android-sdk-linux