3

我遇到了java.lang.VerifyError一个 Android 应用程序。

我用谷歌搜索并遇到了各种验证错误,但找不到发生这种情况的充分理由。

这是堆栈跟踪。

我正在使用 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)

4

1 回答 1

2

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

还有其他帖子表明可能涉及 ProGuard 错误。

于 2014-01-08T15:13:35.557 回答