android - 在 Eclipse 中每次构建后运行批处理文件

标签 android eclipse

我同时从事许多项目。

每次我构建并运行其中一个时,apk 都像往常一样位于 bin 文件夹中。

如果我想将这个 apk 复制到项目外的某个其他文件夹,我必须手动执行。

我创建了一个批处理文件,将我所有项目的 apk 文件复制到所需位置。


有没有办法将 bin 文件夹的输出位置更改为项目外部的某个位置,或者更优选地在每次构建后运行批处理文件


注意

我正在使用带有 ADT 的 Eclipse。我试图添加一个执行批处理文件的构建器。但是,当批处理文件运行时,apk 文件还没有生成。我尝试了构建器中所有选项的组合以及所有可能的构建器序列。

最佳答案

如果您很高兴在完善构建时只使用 Eclipse,然后切换到命令行进行最终构建,那么使用 Ant 只需很少的努力或配置就可以很容易地获得您想要的东西。

假设

1) 您的源代码位于 Android 工作区中,您最终会得到两组二进制文件 - 一组由 Eclipse 生成,另一组由 Ant 生成,最终将位于工作区之外,如属性文件

2)您使用的是SDK14或15(Ant在14中有所改变)

3) 你已经安装了 Ant 并且在你的路径中 - 你需要有 Ant 1.8.2 - 这不是 Eclipse 使用的内部版本,你可能必须从Apache站点,安装简单

步骤

1) 按照 http://developer.android.com/guide/developing/projects/projects-cmdline.html 中的说明从命令行创建示例项目

例如我使用: android 创建项目 --target 8 --name Sample15App --path c:\dev \projects\samples\Sample15 --activity Sample15Activity --package com.me.samplefifteen

这将创建一个目录和一些文件,您稍后将在项目中用作模板

2) 从 Eclipse 在您的工作区中创建示例项目,我在我的一个工作区中创建了 EclipseSample

3) 将以下文件从 Sample15App 复制到 EclipseSample 项目的根目录:

构建.xml Ant 属性 本地属性

4) 将 ant.properties(最初为空)编辑为如下例所示:

projectname=EclipseSample
workspace.dir=/dev/projects/EclipseIndigo/AndroidWorkTwo
base.dir=${workspace.dir}/${projectname}
outbasebase.dir=/dev/projects/AntBuilds
outbase.dir=${outbasebase.dir}/${projectname}
ant.project.name=${projectname}
out.dir=${outbase.dir}/bin
layout.dir=${base.dir}/res/layout
source.dir=${base.dir}/src

从这里你可以看到我的工作区是/dev/projects/EclipseIndigo/AndroidWorkTwo

这个下的eclipse工程在目录EclipseSample

我希望我的 apk 最终出现在 /dev/projects/AntBuilds/EclipseSample(即 outbasebase 与项目名称连接 - 所以对于其他项目,您可以使用非常相似的 ant.properties 文件,只需更改项目名称)

5) 重要 - 编辑 build.xml

注释掉或删除行:

<project name="Sample15App" default="help">

将其替换为

<project>

这只是意味着它将从 ant.properties 而不是 build.xml 中获取项目名称,并且您可以在所有项目中使用相同的 build.xml,只有 ant.properties 需要更改

6)"ant debug" 尝试它应该在/dev/projects/AntBuilds/EclipseSample 下构建调试 apk

7) 最后,如果你想自动化发布构建(自动签名和密码输入)添加行

key.store.password=YourPassword
key.alias.password=YourPassword
key.store=c:/users/you/yourrelease-key.keystore
key.alias=release_alias

到 ant.properties 然后你只需输入 "ant release"

如果你不添加它们,它会告诉你手动签名,因为在“build.properties”中没有找到密码条目(- ant.properties 在 SDK 14 之前被称为,他们应该更正这个!)

关于android - 在 Eclipse 中每次构建后运行批处理文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8181616/

相关文章:

android - 为什么我读取的 Facebook 页面状态值为零?

android - 如何在android中创建一个可点击的不规则形状区域?

android - 使用 GCM 从服务器向应用程序发送消息

java - 为什么Java中返回false?

Android 以编程方式获取应用程序的所有受支持的深层链接

java - Eclipse RCP,向编辑器添加新 View

java - eclipse 中奇怪的自动生成的 getter 和 setter

java - 即使安装了最新的 SDK,Android Lollipop 也未列在 Eclipse Target SDK 中

java - eclipse ee servlet tomcat doPost http405

java - 对现有 Eclipse Web 应用程序的 Maven 插件支持