最近在做一个android项目,由于项目需要。在对生成的源apk文件做单独的处理。大致流程为解压apk,生成dex文件,将dex文件转为jar。修改jar后,再将jar转为dex文件。
将dex转为jar需要使用命令:java -Xms512m -Xmx1024m -classpath dex2jar.jar com.googlecode.dex2jar.tools.Dex2jarCmd -o classes.jar classes.dex
但是该命令关闭了debug模式,用JclassLib查看生成的classes.jar文件,发现没有LocalVariableTable和LineNumberTable两个属性值。
LocalVariableTable是本地变量表,对于我这个项目而言,没有实际意义。但是LineNumberTable没有的话,导致的结果是如果有异常抛出,无法查看行数。
于是,我使用了java -Xms512m -Xmx1024m -classpath dex2jar.jar com.googlecode.dex2jar.tools.Dex2jarCmd -d -o classes.jar classes.dex