前言:
各位同学大家好 ,有段时间没有跟大家见面 周末有网友的一个包反编译遇到了问题我就记录一下
错误日志
反编译错误
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
已经反编译成功了 我们可以看到
执行会变易也遇到了一些问题
具体错误
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 文件
我们看到报错信息是public 里面引用了 ^attr-privates.xml 里面的属性
但是我们发现在 ^attr-privates.xml 里面的没有这些属性
我们把public.xml 里面的没有属性行号删除掉然后 保存 重新回编译
我们可以看到可以重新编译了
我们在dist目录里面看到打包好的 apk
然后我们重新签名一下这包看下能否正常运行
装机测试
## 最后总结
我们可以通过我们的apktool回编译命令看到我们报错信息是资源找不到 然后进行删除处理即可解决此问题还有就第一个 apktool 解包的的时候遇到问题只需要在后面加上 --only-main-classes 最后希望我的文章能帮助到各位同学工作和学习