apktool 遇到 Exception in thread "main" org.jf.dexlib2.dexbacked.DexBackedDexFi

1,136 阅读1分钟

前言:

各位同学大家好 ,有段时间没有跟大家见面 周末有网友的一个包反编译遇到了问题我就记录一下

错误日志

image.png 反编译错误

Exception in thread "main" org.jf.dexlib2.dexbacked.DexBackedDexFile$NotADexFile: Not a valid dex magic value: cf 77 4c c7 9b 21 01 cd

提示很明显,就是非法Dex,这是因为apk里有加密过后的dex文件,比如有些apk的assets目录下有加密后的Dex文件,添加–only-main-classes参数即可

apktool d  moyu_bale_20230526_1.apk  --only-main-classes

image.png

image.png

已经反编译成功了 我们可以看到

执行会变易也遇到了一些问题

image.png

具体错误

F:\decompiletool\moyu\_bale\_20230526\_1\res\values\public.xml:4308: error: Public symbol ^attr-private/andou\_auto\_select\_effect declared here is not defined

我们找到 values 目录下面的pubilc.xml 文件 image.png 我们看到报错信息是public 里面引用了 ^attr-privates.xml 里面的属性 image.png 但是我们发现在 ^attr-privates.xml 里面的没有这些属性 image.png 我们把public.xml 里面的没有属性行号删除掉然后 保存 重新回编译
image.png 我们可以看到可以重新编译了
image.png 我们在dist目录里面看到打包好的 apk image.png 然后我们重新签名一下这包看下能否正常运行 image.png image.png 装机测试
image.png image.png image.png ## 最后总结 我们可以通过我们的apktool回编译命令看到我们报错信息是资源找不到 然后进行删除处理即可解决此问题还有就第一个 apktool 解包的的时候遇到问题只需要在后面加上 --only-main-classes 最后希望我的文章能帮助到各位同学工作和学习