在没有使用Eclipse的情况下编译Android项目为APK

4
我所做的是将我的eclipse项目中的class文件通过优化器/混淆器运行。现在我有了优化后的class文件,想要将它们制作成apk文件以便签名和发布。但是我不知道该如何操作。我猜我不能只是将它们复制到eclipse项目的bin文件夹中,因为当我尝试导出已签名的apk时,eclipse会用新的编译文件覆盖它们。那么我该如何从这些class文件创建一个apk呢?

https://dev59.com/t2Af5IYBdhLWcg3wqUON - Ciro Santilli OurBigBook.com
2个回答

11

你可以尝试将它们放在bin/classes中,然后使用"ant"命令构建你的应用程序。

cd /path/to/my/app
ant release

每次进行签名应用时,它都会要求您输入私钥密码,但是可以通过编辑 "build.properties" 文件来自动签名:

key.store=release.keystore
key.alias=release
key.store.password=my_key_password
key.alias.password=my_key_password

你还可以调查Android SDK,找到它实际使用的ANT构建脚本,并在构建过程中插入自定义的混淆器/优化器调用。


1
谢谢!但我刚刚花了半天时间尝试做这件事,但失败了。我找到的指南都假定我在项目目录中有一个build.xml文件,但我没有。我尝试从sdk示例中获取build.xml,但未能将其转换为适用于我的项目的工作方式:'( 有什么想法吗? - pgsandstrom
运行命令 "android update project --path /path/to/your/project --target 3"。 - zed_0xff
你可以使用“android list target”命令列出目标。 - zed_0xff
我终于搞定了...一些环境变量指向了一个旧的SDK,影响了“list target”的功能。:P 感谢您的帮助。 - pgsandstrom
抱歉,刚刚意识到它不起作用了...Ant编译了Java文件。我明天必须看一下Ant脚本:( - pgsandstrom
解决了...在相应的平台文件夹中从ant文件里删除了<target name="compile"标签,并且同时删除了所有依赖于此标签的内容,即所有depends="compile"。现在它能正常工作啦!:D - pgsandstrom

-1
这是一个例子:
android create project \
--target 1 \
--name MyAndroidApp \
--path ./MyAndroidAppProject \
--activity MyAndroidAppActivity \
--package com.example.myandroid

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接