在将我的Xoom更新到3.1之后,我遇到了一个VerifyError。以下是可能导致该问题的代码。
public boolean goBack()
{
if(_overlay == null || _pdfView == null) return false;
_overlay.removeView(_pdfView);
_overlay = null;
_pdfView = null;
return true;
}其中_overlay是一个FrameLayout,_pdfView是一个用于呈现扩展了RelativeLayout的文档的类。这是我得到的错误。
05-17 11:26:30.532: WARN/dalvikvm(14244): VFY: Ljava/lang/Object; is not instance of Landroid/view/View;
05-17 11:26:30.532: WARN/dalvikvm(14244): VFY: bad arg 1 (into Landroid/view/View;)
05-17 11:26:30.532: WARN/dalvikvm(14244): VFY: rejecting call to Landroid/view/ViewGroup;.removeView (Landroid/view/View;)V
05-17 11:26:30.532: WARN/dalvikvm(14244): VFY: rejecting opcode 0x6e at 0x000f
05-17 11:26:30.532: WARN/dalvikvm(14244): VFY: rejected Lcom/bluediesel/shell/utils/JavaScriptInterface;.goBack ()Z
05-17 11:26:30.532: WARN/dalvikvm(14244): Verifier rejected class Lcom/bluediesel/shell/utils/JavaScriptInterface;
05-17 11:26:30.532: DEBUG/AndroidRuntime(14244): Shutting down VM
05-17 11:26:30.532: WARN/dalvikvm(14244): threadid=1: thread exiting with uncaught exception (group=0x401e2760)
...
05-17 11:26:30.542: ERROR/AndroidRuntime(14244): Caused by: java.lang.VerifyError: com.bluediesel.shell.utils.JavaScriptInterface
05-17 11:26:30.542: ERROR/AndroidRuntime(14244): at com.bluediesel.shell.utils.BDWebViewClient.<init>(BDWebViewClient.java:15)
05-17 11:26:30.542: ERROR/AndroidRuntime(14244): at com.bluediesel.shell.view.BDWebView.<init>(BDWebView.java:56)
05-17 11:26:30.542: ERROR/AndroidRuntime(14244): at com.bluediesel.shell.view.BDWebView.<init>(BDWebView.java:42)
05-17 11:26:30.542: ERROR/AndroidRuntime(14244): ... 24 more如果我注释掉_overlay.removeView(_pdfView);行,它就可以正常工作。它好像不知道PdfView是视图的子类。PdfView在一个库中。这会与此有关吗?
发布于 2011-05-18 05:31:18
操作码0x6e是"invoke-virtual",用于方法调用。消息是由验证传递给目标方法的参数的代码发出的。
"Ljava/lang/Object;不是Landroid/View/View;的实例“告诉我有几个类型被合并了,并且验证器在java.lang.Object下面找不到一个通用的超类。(如果它抱怨"PdfView不是视图的实例“,那么我同意您的评估,即VM不理解类关系。)
你能粘贴goBack()的反汇编吗?如果你在它所在的APK上运行“"com.bluediesel.shell.utils.JavaScriptInterface.goBack”-d“并搜索dexdump,你应该直接跳转到它。只需包括(20-ish?)方法的反汇编字节码的行。
https://stackoverflow.com/questions/6033596
复制相似问题