Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/346.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Smali toast显示代码注入错误-寄存器v1类型引用不匹配?_Java_Android_Reverse Engineering_Smali - Fatal编程技术网

Java Smali toast显示代码注入错误-寄存器v1类型引用不匹配?

Java Smali toast显示代码注入错误-寄存器v1类型引用不匹配?,java,android,reverse-engineering,smali,Java,Android,Reverse Engineering,Smali,我将以下代码插入到反编译的应用程序中,以显示现有方法myMethod中的toast消息: .method public myMethod(Ljava/lang/String;)V .locals 1 const/4 v0, 0x1 const-string v1, "Welcome to myMethod" invoke-static {p0, v1, v0}, Landroid/widget/Toast;->makeText(La

我将以下代码插入到反编译的应用程序中,以显示现有方法myMethod中的toast消息:

.method public myMethod(Ljava/lang/String;)V
    .locals 1

    const/4 v0, 0x1

    const-string v1, "Welcome to myMethod"

    invoke-static {p0, v1, v0}, Landroid/widget/Toast;->makeText(Landroid/content/Context;Ljava/lang/CharSequence;I)Landroid/widget/Toast;

    move-result-object v0

    invoke-virtual {v0}, Landroid/widget/Toast;->show()V

    return-void
.end method
应用程序编译良好,但当此方法被称为应用程序崩溃时,错误详细信息logcat日志:

java.lang.VerifyError: Verifier rejected class com.XXX: void com.XXX.myMethod(java.lang.String) failed to verify: void com.XXX.myMethod(java.lang.String): [0x3] register v1 has type Precise Reference: java.lang.String but expected Reference: android.content.Context (declaration of 'com.XXX' appears in /data/app/com.XXX/base.apk)

我遗漏了什么吗?

makeText的第一个参数接受上下文对象。但是,您正在传递p0,它包含一个字符串对象(传递到方法中的字符串值)。

makeText的第一个参数接受一个上下文对象。但是,您正在传递p0,它包含一个字符串对象(字符串值被传递到您的方法中)。

谢谢您的回答。请你再详细说明一下好吗?它将帮助我学习如果我删除p0,它也将不起作用,因此应该有一个解决方法,你必须在上下文中通过。谢谢你的回答。请你再详细说明一下好吗?它将帮助我了解如果我删除p0,它也将不起作用,因此应该有一个解决方法,您必须在上下文中通过。