使用eclipse-android-tools- Export signed Application Package... 打包实在太慢了,应该说是卡死了
无奈只能用ant来打包,资料也是从网上查的,由于从没有使用过ant,期间也碰到很多错误,但都解决了
说下步骤吧:
1.cmd或终端进入 sdk/tools/
cd xxx:/sdk/tools
2.增加ant支持
android update project -n 你的项目名 -t Android版本 -p 你的项目路径
cmd命令:
android update project -n TestApp -t 1 -p c:/workspace/TestApp
注意看,使用Mac Os的,虽然命令差不多,但是要加上./貌似是在终端下执行命令要加上这个,真心搞不懂。。
3.执行了这条命令然后就会在你的项目目录下生成 build.xml,local.propertices
编写build.xml
<projectname="TestApp"default="release">
应该都明白,name是项目名称,default默认是debug,正式发布把它改成release就好了然后增加以下内容:
<propertyfile="local.properties"/>
<!--<property name="sdk.dir" value="/Users/liu/Downloads/adt-bundle-mac-x86_64-20130514/sdk" /> <!--配置Android SDK路径 Mac Os -->
<propertyname="sdk.dir"value="\\Users\\liu\\Downloads\\adt-bundle-mac-x86_64-20130514\\sdk"/><!--配置Android SDK路径windows -->
<propertyname="has.keystore"value="true"/> <!-- 打包是否需要签名 -->
<propertyname="has.password"value="true"/> <!-- 签名是否需要密码 -->
<propertyfile="project.properties"/> <!-- 加载sdk version -->
<propertyname="key.store"value="test.key"/> <!-- 签名文件位置,build.xml同目录下 -->
<propertyname="key.alias"value="test"/> <!-- 签名标识 -->
<propertyname="key.store.password"value="123456"/> <!-- 签名的密码 -->
<propertyname="key.alias.password"value="123456"/> <!-- 签名的密码 -->
<propertyname="proguard.enabled"value="true"/> <!-- 是否混淆 -->
<propertyname="proguard.config"value="proguard.cfg"/> <!-- 混淆文件位置,build.xml同目录 -->
4.打开local.properties,这里的路径一定要对,不对的话编译是不通过的,路径同上sdk.dir
5.编写混淆规则文件proguard.cfg
6.将test.key复制到build.xml所在的目录,也就是你的项目下的路径
7.直接右键build.xml Run As - Ant builder ,如果没有错误的话就成功了。
Buildfile: /Users/liu/Documents/workspace/TestApp/build.xml
-set-mode-check:
-set-release-mode:
[echo] *************************************************
[echo] **** Android Manifest has debuggable=true ****
[echo] **** Doing DEBUG packaging with RELEASE keys ****
[echo] *************************************************
-release-obfuscation-check:
[echo] proguard.config is proguard.cfg
-pre-build:
-check-env:
[checkenv] Android SDK Tools Revision 22.0.0
[checkenv] Installed at /Users/liu/Downloads/adt-bundle-mac-x86_64-20130514/sdk
-setup:
[echo] Project Name: TestApp
[gettype] Project Type: Application
-build-setup:
[getbuildtools] Using latest Build Tools: 17.0.0
[echo] Resolving Build Target for TestApp...
[gettarget] Project Target: Android 2.2
[gettarget] API level: 8
[echo] ----------
[echo] Creating output directories if needed...
[echo] ----------
[echo] Resolving Dependencies for TestApp...
[dependency] Library dependencies:
[dependency] No Libraries
[dependency] ------------------
[dependency] API<=15: Adding annotations.jar to the classpath.
[echo] ----------
[echo] Building Libraries with 'release'...
[subant] No sub-builds to iterate on
-code-gen:
[mergemanifest] No changes in the AndroidManifest files.
[echo] Handling aidl files...
[aidl] No AIDL files to compile.
[echo] ----------
[echo] Handling RenderScript files...
[renderscript] No RenderScript files to compile.
[echo] ----------
[echo] Handling Resources...
[aapt] Found new input file
[aapt] Generating resource IDs...
[echo] ----------
[echo] Handling BuildConfig class...
[buildconfig] No need to generate new BuildConfig.
-pre-compile:
-compile:
[javac] Compiling 2 source files to /Users/liu/Documents/workspace/TestApp/bin/classes
-post-compile:
-obfuscate:
-dex:
[dex] input: /Users/liu/Documents/workspace/TestApp/bin/classes
[dex] input: /Users/liu/Downloads/adt-bundle-mac-x86_64-20130514/sdk/tools/support/annotations.jar
[dex] input: /Users/liu/Documents/workspace/TestApp/libs/httpmime-4.1.3.jar
[dex] input: /Users/liu/Documents/workspace/TestApp/libs/universal-image-loader-1.8.4.jar
[dex] input: /Users/liu/Documents/workspace/TestApp/libs/android-support-v4.jar
[dex] input: /Users/liu/Documents/workspace/TestApp/libs/zxing.jar
[dex] Using Pre-Dexed annotations-617920632b29e9f60005519f15a2798e.jar <- /Users/liu/Downloads/adt-bundle-mac-x86_64-20130514/sdk/tools/support/annotations.jar
[dex] Using Pre-Dexed httpmime-4.1.3-956f9f205cfbc925c1c537f2a999a81b.jar <- /Users/liu/Documents/workspace/TestApp/libs/httpmime-4.1.3.jar
[dex] Using Pre-Dexed universal-image-loader-1.8.4-157cb1e13c49e5fac7dbde46fde88b21.jar <- /Users/liu/Documents/workspace/TestApp/libs/universal-image-loader-1.8.4.jar
[dex] Using Pre-Dexed android-support-v4-2ab6fcf1e61b5797fceec423f3f2ee63.jar <- /Users/liu/Documents/workspace/TestApp/libs/android-support-v4.jar
[dex] Using Pre-Dexed zxing-7fa5fcec8905f572c962c77ceb2042dd.jar <- /Users/liu/Documents/workspace/TestApp/libs/zxing.jar
[dex] Found modified input file
[dex] Converting compiled files and external libraries into /Users/liu/Documents/workspace/TestApp/bin/classes.dex...
[dx] Merged dex A (1456 defs/1744.3KiB) with dex B (453 defs/386.1KiB). Result is 1909 defs/2621.0KiB. Took 1.3s
[dx] Result compacted from 3388.5KiB to 2098.4KiB to save 1290.0KiB
[dx] Merged dex A (1909 defs/2621.0KiB) with dex B (2 defs/1.1KiB). Result is 1911 defs/2098.4KiB. Took 0.3s
[dx] Merged dex A (1911 defs/2098.4KiB) with dex B (15 defs/18.4KiB). Result is 1926 defs/2613.5KiB. Took 0.1s
[dx] Result compacted from 3526.2KiB to 2204.5KiB to save 1321.7KiB
[dx] Merged dex A (1926 defs/2613.5KiB) with dex B (88 defs/103.1KiB). Result is 2014 defs/2204.5KiB. Took 0.2s
[dx] Merged dex A (2014 defs/2204.5KiB) with dex B (205 defs/309.5KiB). Result is 2219 defs/3108.6KiB. Took 0.2s
[dx] Result compacted from 4347.1KiB to 2739.7KiB to save 1607.4KiB
[dx] Merged dex A (2219 defs/3108.6KiB) with dex B (139 defs/255.7KiB). Result is 2358 defs/2739.7KiB. Took 0.3s
[dx] Merged dex A (2358 defs/2739.7KiB) with dex B (49 defs/67.6KiB). Result is 2407 defs/3463.6KiB. Took 0.1s
[dx] Result compacted from 4571.0KiB to 2844.8KiB to save 1726.2KiB
[dx] Merged dex A (2407 defs/3463.6KiB) with dex B (58 defs/73.9KiB). Result is 2465 defs/2844.8KiB. Took 0.5s
[dx] Merged dex A (2465 defs/2844.8KiB) with dex B (50 defs/87.6KiB). Result is 2515 defs/3612.6KiB. Took 0.2s
[dx] Result compacted from 5203.1KiB to 3324.2KiB to save 1878.9KiB
[dx] Merged dex A (2515 defs/3612.6KiB) with dex B (371 defs/436.8KiB). Result is 2886 defs/3324.2KiB. Took 0.4s
[dx] Merged dex A (2886 defs/3324.2KiB) with dex B (192 defs/301.3KiB). Result is 3078 defs/4493.6KiB. Took 0.2s
-crunch:
[crunch] Crunching PNG Files in source dir: /Users/liu/Documents/workspace/TestApp/res
[crunch] To destination dir: /Users/liu/Documents/workspace/TestApp/bin/res
[crunch] Crunched 0 PNG files to update cache
-package-resources:
[aapt] No changed resources or assets. TestApp.ap_ remains untouched
-package:
[apkbuilder] Found modified input file
[apkbuilder] Creating TestApp-release-unsigned.apk for release...
-post-package:
-release-prompt-for-password:
-release-nosign:
-release-sign:
[echo] Signing final apk...
[zipalign] Running zip align on final apk...
[echo] Release Package: /Users/liu/Documents/workspace/TestApp/bin/TestApp-release.apk
[propertyfile] Updating property file: /Users/liu/Documents/workspace/TestApp/bin/build.prop
[propertyfile] Updating property file: /Users/lieu/Documents/workspace/TestApp/bin/build.prop
[propertyfile] Updating property file: /Users/lie/Documents/workspace/TestApp/bin/build.prop
[propertyfile] Updating property file: /Users/liu/Documents/workspace/TestApp/bin/build.prop
-post-build:
release:
BUILD SUCCESSFUL
Total time: 23 seconds