Android java文件转dex文件爬坑

最近公司要搞热修复功能,又不肯使用付费框架,无奈只能自己写了,我在打包dex文件的时候遇到不少坑,记录一下:
转换步骤:java—>class—>dex
##第一步:java文件转成class文件
两种方法:
一,使用IDE(我使用的是as),直接build>make project,
Android java文件转dex文件爬坑
build完成之后,在app–>intermediates下找classes包,没有classes包的,去javac–>debug–>compileDebugJavaWithJavac下,就能找到classes包
Android java文件转dex文件爬坑
二:使用命令javac xxx.java
Android java文件转dex文件爬坑

第一步完成
##第二步:class文件转dex文件
需要用到Sdk里的dx.bat
这里最好配置一下环境变量,不会配置的百度,不想配置的或者配置不成功的可以不配置,打开终端 cd到你sdk文件夹下也可以,命令dx --dex --output D:\dex\Dex.class D:\dex
Android java文件转dex文件爬坑
啥意思呢,就是我的目标文件叫Dex.class 放在D盘下dex文件夹 ,我想要把生成出来的dex文件放在D盘下dex文件夹里,这么说大家明白不,有点基础的应该都懂吧
顺利的话,xxx.dex文件就生成好了,
但是,如果是这么顺利的话,我就是标题党了,这里边的坑我必须告诉大家

##坑一:在执行dx --dex --output命令后,提示:Android java文件转dex文件爬坑
不要慌,不是命令出了问题,而是你的class文件的问题,由于你jdk版本过高,导致的不兼容,所以赶紧去下一个低版本的jdk ,我期初是用的jdk13,发现问题之后下载了jdk1.8,下载地址:
(https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html)
安装完成之后,卸载掉高版本jdk即可,不要忘记改一下环境变量。如是,再生成的class文件就很香了,拿去按照第二步生成dex文件即可。

##坑二:在执行dx --dex --output命令后,提示:
Android java文件转dex文件爬坑
它意思是你路径不对了,咱看也没毛病,但电脑就说不对,原因我不清楚,解决办法:在–dex 后加上 --no-strict:
Android java文件转dex文件爬坑

这两个坑是我实际开发中遇到的问题,憋了我好几天才摸索出来,在这里分享给大家,文章如有错误,请朋友们指出,谢谢