对于新建的工程,根目录上会自动添加proguard.cfg文件,用于代码混淆,无论你建的target是android的那个版本,都会自动的添加上。
在想使用代码混淆的时候,在project.properties文件中添加proguard.config=proguard.cfg一句话,来表明你想使用代码混淆,还有一些简单的使用说明在\docs\guide\developing\tools\proguard.html文件中可以找到,还有一些使用proguard的注意事项,在这里也同样可以找到。
对于旧的工程,可以把对应的proguard.cfg拷贝过去,可以实现相同的效果。
在今天尝试混淆的时候出现了“Conversion to Dalvik format failed with error 1”的错误,网上搜到的解决方案都不是针对代码混淆的,后来终于在stackoverflow找到了问题的答案,是因为sdk tools reversion12 的问题,降到reversion11后就没有问题了,更好的解决方法也有人给出了:
找到[Android SDK Installation Directory]\tools\proguard\bin\proguard.bat文件,用编辑器打开(我用的是Editplus),将这句话:
call %java_exe% -jar "%PROGUARD_HOME%"\lib\proguard.jar %*
改为
call %java_exe% -jar "%PROGUARD_HOME%"\lib\proguard.jar %1 %2 %3 %4 %5 %6 %7 %8 %9
就ok了。
其中我还出现了一个错误,是因为我之前在工程中添加了android-support-v4.jar,学习一下看看是否能够更好的兼容不同的版本,但是添加这个jar包之后,混淆的时候就会出现错误。有人说去掉proguard.cfg中-optimizationpasses 5这句话就可以解决,但是我现在对proguard了解的太少了,不知道每句话的具体含义,不敢删~,还是等以后研究明白之后再决定是否可以删。