2012-04-08 29 views
0

关于this question,简单地将一个jar放入/libs并不会在调用ant debug时自动将该jar包括到.dex中。没有至少与Android SDK版本15.android build:通过命令行编译添加jar到endstate

我已通过比较相同的项目创建两种不同的方式验证了这一点。首先(称为'阿尔法'),由Eclipse。其次,通过android create project ...,等等等等(蚂蚁的方式,称之为'布拉沃')。

Alpha和Bravo I都使用ant debug构建。比较它们的/bin目录,从布拉沃的*.d中缺少<project_root>/libs下的罐子;阿尔法不是。

在项目创建过程中嵌入Eclipse有什么魔力?

更好的是,如何确保在构建项目时将jar包传递给ant debug|release,jar包含在endstate中?

+0

我能够通过在列表中添加'.classpath'(这在布拉沃的布局中显然缺少)来获得它,但我希望通过命令行切换来做到这一点;因此,为什么这篇文章是评论而不是答案。 – Steven 2012-04-08 01:25:38

回答

1

如果要硬连线,您可能只需调整build.xml以在-pre-build节点中包含类似以下内容。您还可以将其添加到build.xml文件中的自定义目标中,你可以在命令行中包含你想要的东西。像下面的东西可以工作。

<target name="add-jar"> 
    <copy file="${src.folder}/YourJarHere.jar" tofile="libs/YourJarHere.jar" overwrite="true"/> 
</target> 

${src.folder}在ant.properties文件中定义。

喜欢的东西src.folder=PATHOFYOURJAR

那么你应该能够运行

ant debug add-jar 

包括文件。

我不得不在过去手动创建libs文件夹,但我不明白为什么你不能通过build.xml文件来做到这一点。希望这可以帮助!

+0

谢谢,Rymnel。现在我已经'触摸'和'回声'产生'.classpath'。我对“.classpath”起作用感到有些吃惊,但随后Android开发趋于对Eclipse友好。我的部分需求并未修改/促成Ant工件(通过Gradle运行它)。尽管如此,你的方法无法找到过错。要把这个问题留待下一天。如果没有别的出现,我选择你的答案。 – Steven 2012-04-08 18:31:52