修改APK的一些smali代码后,如何定位Android中的注册问题?

how to locate the register problem in Android after modifying some smali code of an APK?

我想在应用程序中添加一些东西,所以我在一个 smali 文件中添加了一些行(使用 apktools 反编译了 apk),然后重新打包并 运行 它在真实设备上。 它显示

那么[0x161]指的是什么?是行号吗? 0x161 = 十进制的 353。于是查了smali代码,但是函数a.b.a.a.a.i.m在smali里只有不到353行,所以没有第353行,也定位不到错误。

这个函数在java中也没有足够的行(我使用jadx反编译了生成的apk)。

那么我可以定位到文件第353行的问题在什么类型的文件中呢?我是否应该将 apk运行sformed 为其他格式以找到第 353 行来解决错误?提前致谢。

0x161 应该是相对 offset/address 从方法开始的字节数。

在 Jadx 中,打开您感兴趣的 class 的 Smali 选项卡,并从 smali 代码面板的上下文菜单中打开 select Show Dalvik Bytecode 以查看偏移量。您要查找的偏移量应显示在第二个灰色列中(示例屏幕截图中带有红色边框的列)。

错误应该是由于在v0中放置了错误的对象引用引起的。