Android java文件转dex文件爬坑

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

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

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

##坑二:在执行dx --dex --output命令后,提示:
在这里插入图片描述
它意思是你路径不对了,咱看也没毛病,但电脑就说不对,原因我不清楚,解决办法:在–dex 后加上 --no-strict:
在这里插入图片描述

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

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值