Smali - 无法调用实例构造函数

问题描述

我正在编辑一个 .smali 文件,我只需要创建一个类的实例,然后用几个参数调用它的构造函数,但是生成的字节码改为调用“this(...)”,即使我是指定要使用的上下文。

const-string v3,"string"

new-instance v2,Lcom/a/b/c/ClassName;

invoke-direct {v2,p0,v3},Lcom/a/b/c/ClassName;-><init>([BLjava/lang/String;)V

结果:

ClassName className = new ClassName();
this(arrayOfByte,"string");

试图找到有关如何调用构造函数的任何其他简单示例,我从 this PDF 中找到了以下代码

new-instance v2,Ljava/lang/StringBuilder;

invoke-direct {v2},Ljava/lang/StringBuilder;-><init>()V

然而,反编译的字节码返回:

StringBuilder stringBuilder = new StringBuilder();
this();

我做错了什么?这是一个尽可能简单的示例,但即使没有参数,它仍然会中断。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)