java - 奇怪的 java.lang.VerifyError - VFY : 'this' arg 'Ljava/lang/String;' not instance of '(my-class-name)

标签 java android verifyerror

我在 Android 应用程序上遇到了 java.lang.VerifyError

我用 Google 搜索并遇到了各种验证错误,但找不到发生这种情况的可靠原因。

这是堆栈跟踪。

我正在使用 Android SDK Tools 22.3,应用程序在 Android 2.2 上运行

W/dalvikvm( 2327): VFY: 'this' arg 'Ljava/lang/String;' not instance of 'Lcom/mypackage/BPM/DATA_Manager_BPM;'
W/dalvikvm( 2327): VFY:  rejecting opcode 0x74 at 0x085d
W/dalvikvm( 2327): VFY:  rejected Lcom/mypackage/DEALER/DEALER_FailedOperationManager$TransactionAsyncTask;.doInBackground ([Ljava/lang/Object;)Ljava/lang/Integer;
W/dalvikvm( 2327): Verifier rejected class Lcom/mypackage/DEALER/DEALER_FailedOperationManager$TransactionAsyncTask;
D/AndroidRuntime( 2327): Shutting down VM
W/dalvikvm( 2327): threadid=1: thread exiting with uncaught exception (group=0x4001d7e8)

有谁知道“拒绝操作码 0x74”这个“不是实例”错误是什么意思?或者关于在哪里查看的任何线索?

更新

TransactionAsyncTask 的签名如下。

class TransactionAsyncTask extends AsyncTask<Object, Void, Integer>

我只需使用 new TransactionAsyncTask().execute();

调用它

doInBackground的签名是

protected Integer doInBackground(Object... params)

最佳答案

doInBackground() 中,有一个虚拟方法调用(操作码 0x74,使用寄存器调用虚拟),使用 String 作为 this 调用com.mypackage.BPM.DATA_Manager_BPM 预期位置的指针。

other posts这表明可能涉及 ProGuard 错误。

关于java - 奇怪的 java.lang.VerifyError - VFY : 'this' arg 'Ljava/lang/String;' not instance of '(my-class-name),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20998930/

相关文章:

java - 如何在corda中创建服务以将任意数据存储在节点数据库中的任意位置而不是存储在Vault内

java - 点击android上的随机7位数字

带有 fragment 的 Android InstantiationException(它是公开的)

java - 发出实例化 bean - 验证错误

使用 vaadin 和 vaadin-server 时出现 java.lang.VerifyError

java - 为什么我会收到此错误以及如何修复它?对于参数类型 android.widget.EditText、android.widget.EditText ,运算符 - 未定义

java - 操作转换实现(不是 javascript)

java - 为什么spring三元表达式得到相反的结果?

c# - 在 Unity3D 中创建 Android XMPP 聊天客户端的最佳方式

java - 调试 VerifyError 的好工具?