企业🤖AI智能体构建引擎,智能编排和调试,一键部署,支持私有化部署方案 广告
三、制作补丁 在加载dex 的代码之前,我们先来制作补丁。 1. 首先我们将Cat 类修复,汪汪汪改成喵喵喵,然后重新编译项目。(Rebuild一下就行了) 2. 去保存项目的地方,将Cat.class 文件拷贝出来,在这里 ![](https://img.kancloud.cn/72/23/722398e6e77e900e22baae5b6cd5b329_409x452.jpg) 3. 新建文件夹,要和该Cat.class 文件的包名一致,然后将Cat.class 复制到这里, 如图 ![](https://img.kancloud.cn/22/af/22af5fbfcf2b80ed1a504f4a599cff20_712x176.jpg) 4. 命令行进入到图中的test 目录,运行一下命令,打包补丁。如图: ![](https://img.kancloud.cn/0f/68/0f681f79b0e361c143d4ebad3bd1aa87_750x453.jpg) 然后test 目录是这样的 ![](https://img.kancloud.cn/d0/53/d053724f0368fc77db6846b363e66c67_459x177.jpg) patch_dex.jar 就是我们打包好的补丁了,我们将它放到sdCard 中,待会从这里加载补丁。 关于什么用这么复杂的方法打包补丁的说明: 你也可以直接将java 文件拷出来,通过javac -d 带包编译再转成jar。 但我这么麻烦是有原因的,因为用这种方法你可能会遇到ParseException,原因是jar 包版本和dx 工具版本不一致。 而从项目中直接将编译好的class 直接转成jar 就没问题,因为java 会向下兼容,打出来的jar 包和class 版本是一致的。 总而言之,dx 版本要和class 编译版本对应。