您的位置:首页 > 编程语言 > Java开发

解决eclipse使用proguard混淆签名apk问题

2013-06-20 15:11 423 查看
            我的安卓开发环境是r18,当使用android sdk 内置的proguard进行打包混淆签名时出现各类错误。从网上查了多种解决方案,没事就报'-jar'不是可执行命令等各类错误,

整了我一上午,都没用。所以采用ant + 内置proguard + keytool +jarsigner方式打包,废话不说。直接上代码。

 

先决条件.ant 环境搭建,网上自己找。 android环境配置。jdk环境配置

 

1,首先在eclipse开发好程序(工程名TallyBook),修改工程文件中project.properties.

proguard.config=${sdk.dir}\tools\proguard\android.txt:proguard-project.txt

android.txt已经配置好,也可以使用其他已经修改好的文件(自己改名字)。

2.将该工程复制到f:根目录

3.在控制台执行命令android_sdk/tools/android update project -n TallyBook -p F:\TallyBook -t 12 -s

提示Added file F:\TallyBook\bin\build.xml  成功。为ant 运行配置文件。

4.配置好ant 后。

执行 ant -f F:\TallyBook\build.xml release

提示build成功后,在工程bin目录下生成未签名的apk.

使用反编译工具查看源码,已经混淆成功。

4.使用签名工具签名。

创建证书 keytool -genkeypair -alias shahaiinfo -keyalg "rsa" -keystore guojun.keystore (会在当前目录下创建guojun.keystore文件)

将证书导出到文件(备用,此处不用)

keytool -export -alias test1 -file test.crt -keystore guojun.keystore 

导入证书信息(此处不用)

keytool -import -keystore test_cacerts -file test.cer 

//签名,参数顺序不要乱 ,否则会报找不到c:user\admin~1\.keystore错误。

//使用自己已经做好的证书替换

        输出详细信息(签名或验证) 密钥库位置(当前目录)              签名后的apk        未签名的apk                  密钥库的别名(不能加-alias)

jarsigner  -verbose              -keystore guojun.keystore -signedjar mm.apk            Shuite-release-unsigned.apk  shahaiinfo

5.使用zipalign优化apk

zipalign -v 4 source.apk  des.apk

以下为批处理,将相应工程名更改,如果报错,就写绝对路径,最好将各工具的环境变量配好。具体找其他文章。

REM //////////////////////////////////////////////////////////////简易打包批处理run.bat/////////////////////////////////////////////////////////////////////////////

@echo on

echo 将eclipse工程文件复制到该目录下面

call set path = "D:\android-sdk_r18-windows\android-sdk-windows\tools\android"

call android  update project -n ShaHaiSuite -p e:\sign\ShaHaiSuite -t 12 -s

echo 更新工程

echo 开始使用ant 编译

call ant -f e:\sign\ShaHaiSuite\build.xml release

echo 签名apk

call jarsigner -verbose  -keystore shahaiinfo.keystore -signedjar ShaHaiSuite-release-signed.apk  .\ShaHaiSuite\bin\ShaHaiSuite-release-unsigned.apk shahaiinfo

echo 已经签名

pause

echo 使用zipalign优化apk

call zipalign -v 4 ShaHaiSuite-release-signed.apk  ShaHaiSuite-release-signed-youhua.apk

pause

eixt

REM /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
相关文章推荐