主模块build.gradle根路径加入任务
task makeJar(type: org.gradle.api.tasks.bundling.Jar) { //指定生成的jar名称 baseName 'fixclass' //从哪里打包class文件 from('build/intermediates/classes/debug/cn/xxx/hotfixtest/') //打包到jar后的目录结构 into('cn/gowild/hotfixtest/') // //include ,exclude参数来设置过滤 //去掉不需要打包的目录和文件 exclude('MainActivity.class', 'FixEngine.class', 'BuildConfig.class', 'R.class', 'BuildConfig.class') // 去掉R$开头的文件 exclude { it.name.startsWith('R$') } }
命令执行gradlew makejar
build/intermediates/classes/debug/cn/xxx/hotfixtest目录下自动生成jar包
sdk\build-tools\26.0.0目录下dx.bat命令
dx --dex --output=新dex.jar 当前jar.jar
1、build --> make project 后,在build\intermediates\classes\debug\..下得到要操作的.class文件
2、创建目录,层级与.java文件包名一致,把.class文件移到该目录下(如果路径名与包名不一致,转dex操作会报错)
3、用jdk/bin目录下的jar命令或者上方的gradle脚本, jar cvf destFile.jar source.class,得到jar文件
4、用Android sdk/build-tools下的命令dx --dex --output=destFile_dex.jar destFile.jar得到包含.dex类型的jar包
工具:https://sourceforge.net/projects/dex2jar/?source=typ_redirect
命令:d2j-dex2jar classes.dex
JD-GUI:http://www.softpedia.com/get/Programming/Debuggers-Decompilers-Dissasemblers/JD-GUI.shtml
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。