我有很多我同时工作的项目.
每次我构建并运行其中一个时,apk就像往常一样位于bin文件夹中.
如果我想将这个apk复制到项目之外的其他文件夹,我必须手动完成.
我创建了一个批处理文件,将我所有项目的apk文件复制到所需的位置.
有没有办法将bin文件夹的输出位置更改为项目之外的某个位置,或者更优选地在每次构建后运行批处理文件?
注意
我正在使用ADT与eclipse.我试图添加一个执行批处理文件的构建器.但是,运行批处理文件时,尚未生成apk文件.我尝试了构建器中所有选项的组合以及所有可能的构建器序列.
如果您只是在完善构建时使用Eclipse,那么切换到最终构建的命令行,然后使用Ant,只需很少的努力或配置就可以轻松获得所需的内容.
假设
1)您的源代码位于Android工作区中,您将最终得到两组二进制文件 - 一组由Eclipse生成,另一组由Ant生成,最终将在工作区外部由PROPERTIES文件设置
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 create project --target 8 --name Sample15App --path c:\ dev\projects\samples\Sample15 --activity Sample15Activity --package com.me.samplefifteen
这将创建一个目录和一些文件,稍后您将在项目中将其用作模板
2)在Eclipse的工作区中创建一个示例项目,我在我的一个工作区中创建了EclipseSample
3)将以下文件从Sample15App复制到EclipseSample项目的根目录:
build.xml ant.properties local.properties
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
Run Code Online (Sandbox Code Playgroud)
从中你可以看到我的工作区是/ dev/projects/EclipseIndigo/AndroidWorkTwo
这下的eclipse项目位于EclipseSample目录中
我希望我的apks最终出现在/ dev/projects/AntBuilds / EclipseSample中(即outbasebase与projectname -so连接,对于其他项目,你可以使用非常相似的ant.properties文件只需更改projectname)
5)重要 - 编辑build.xml
注释掉或删除该行:
<project name="Sample15App" default="help">
Run Code Online (Sandbox Code Playgroud)
用它替换它
<project>
Run Code Online (Sandbox Code Playgroud)
这只是意味着它将从ant.properties而不是build.xml中获取项目名称,并且您可以在所有项目中使用相同的build.xml,只有ant.properties需要更改
6)尝试使用"ant debug"应该在/ dev/projects/AntBuilds/EclipseSample下构建调试apks
7)最后如果你想自动化发布版本(自动签名和密码输入)添加如下行
key.store.password=YourPassword
key.alias.password=YourPassword
key.store=c:/users/you/yourrelease-key.keystore
key.alias=release_alias
Run Code Online (Sandbox Code Playgroud)
到ant.properties然后你只需输入"ant release"
如果你不添加它们,它将告诉你手动签名,因为在'build.properties'中没有找到密码条目( - 这就是之前在SDK 14之前调用的ant.properties,它们应该已经纠正了这个!)
归档时间: |
|
查看次数: |
3455 次 |
最近记录: |