我在將Xoom更新爲3.1後遇到VerifyError錯誤。這是似乎導致它的代碼。Android 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
PDF文檔的類。這是我得到的錯誤。
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是View的一個子類。 PdfView在一個庫中。這有什麼關係嗎?
我不知道發生了什麼事。即使在清理和重建之後,它仍然給我這個錯誤,但是我改變了版本號並開始工作!我認爲這可能是因爲它會導致Android在設備上進行某種清理,但我不知道。無論哪種方式,我會給你加號的檢查標記,並且知道更多關於這個東西的方式,任何人都應該! ;) – CaseyB 2011-05-17 22:44:59
CaseyB:你從哪個版本切換到哪個版本? – 2012-01-17 09:34:17