这是一个使用蚂蚁的解决方案。我必须承认,获得蚂蚁的设置有点麻烦,但它似乎是一个被广泛使用和强大的依附于埃克利普斯的办法,因此我相信,从其他方面来看,这对我来说是有价值的。
蚂蚁是建造没有日光片的Android SDK 应用程序的首选解决办法(如 < a href="http:// developmenter.android.com/guide/developing/building/index.html" rel= "nofollow noreferrer" > 这里所描述的),但不属于ADT的一部分,所以如果你只是使用日光片,你可能不会拥有它。
因此,第一步是从这里下载和安装 Ant 。
下一步在您的路径中添加 Ant, 并确保您的路径也指向 JDK( 而不是 JRE ) 。 在 Windows 上, 我发现我还必须创建 JAVA_ HOME 并指向 JDK 的根 。
我们只需要自动加速步骤的 Ant Ant, 其用意不是要取代Eclipse, 并将其用于整个建筑, 但我们只需要朝这个方向迈出几步, 以确保 Ant 起作用。 所以, 转到您的工程和类型 的根
> android update project --path .
这为您的工程创造了一个建筑.xml。 一旦我完成了,我就可以完成
> ant release
Ant 构建了我的项目。如果你想继续朝这个方向前进,我发现此篇文章 很有用。
接下来,我编辑了我的项目新建筑.xml, 并添加了以下任务(它可以去任何地方, 只是不能在另一个任务/目标中间)
<target name="update.buildnum">
<buildnumber/>
<!-- this task creates (and increments) Ant property build.number which I use below -->
<echo>Current build number:${build.number}</echo>
<echoxml file="res/values/buildnum.xml">
<resources>
<string name="buildnum">${build.number}</string>
</resources>
</echoxml>
</target>
上面使用的自动插入任务, 是一个名为 build. number in your Projects root 的文件中的构建数字( 它会创建这个数字) 。 以上任务的其余部分将当前构建数字设置为资源字符串, 以便您的应用程序可以用此代码检索 :
String build = context.getString( com.your.app.R.string. buildnum );
int appBuild = ( int ) Integer.parseInt( build );
有些人会更喜欢在AndroidManifest.xml. 包含此任务的一个答案, 但需要第3党Ant任务(xmltask), 我有点犹豫, 无法在每栋建筑上有第3党任务来修改我的列表( 它现在相当大)。 如果您决定使用该任务, 那么相应的Android代码来获取构建号将是 :
String packageName = ctx.getPackageName();
PackageInfo pInfo = ctx.getPackageManager().getPackageInfo( packageName, 0);
int appVer = pInfo.versionCode;
最后,你每次做一个建筑时, 需要让日圆来运行这个蚂蚁任务。
转到您的工程属性, 找到“ 构建器”, 并单击按钮添加一个新的构建器。 这里有很多选项, 但只需指定几个选项 。
- Give the builder some name by setting the Name: field.
- Select the Buildfile:. I used the browse workspace option to select it, and then it filled the field with "${workspace_loc:/appname/build.xml}"
- Select targets from a list on the targets tab. In my case I had to remove the help task (the default task in the build.mxl generated above), and then add the build.number task. I suggest you only set a target for Manual Build:.
我移动了新的建筑商 成为建设的第一步。
此解决方案的一个问题是, 每次你让 Eclipse 部署( 运行) 您的应用程序时, 它都被认为是一个新的手工构建, 即使项目没有改变 。 因此, 如果您在多个设备中应用您的应用程序, 每个设备将有一个不同的构建, 有自己的构建编号。 有一点可以缓解这个问题, 谷歌说未来的 ADT 将允许在一个操作中进行变换部署 。
(以上)用Ant 1.8.4、Eclipse Indigo SR2 (3.7.2)、ADT 20 预览2和SDK 工具 20在 Win7 32bit上进行了试验。