我正在開發一個應用程序使用Xamarin.Forms跨平臺使用。最近我更新Mac上的Xamarin Studio以及更新NuGet包。Xamarin「試圖調用虛擬方法'void android.view.View.unFocus(android.view.View)'null對象引用」
我現在收到此錯誤:試圖調用空對象引用的虛擬方法'無效android.view.View.unFocus(android.view.View)'。 (請參閱下面的堆棧跟蹤)
當從除根視圖以外的任何頁面導航(或重新呈現)時,會發生這種情況。我不相信我改變了導航或頁面渲染的任何部分。
對不起,如果這有點模糊,從棧跟蹤中可以看出,這不是從我的代碼開始(以任何可追蹤的方式)。我不確定從哪裏開始調試。任何建議都會非常有幫助!
堆棧跟蹤
--- End of managed Java.Lang.NullPointerException stack trace ---
java.lang.NullPointerException: Attempt to invoke virtual method 'void android.view.View.unFocus(android.view.View)' on a null object reference
at android.view.ViewGroup.removeViewInternal(ViewGroup.java:4937)
at android.view.ViewGroup.removeViewAt(ViewGroup.java:4899)
at android.support.v4.app.FragmentManagerImpl.moveFragmentToExpectedState(FragmentManager.java:1540)
at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1595)
at android.support.v4.app.BackStackRecord.executeOps(BackStackRecord.java:757)
at android.support.v4.app.FragmentManagerImpl.executeOps(FragmentManager.java:2355)
at android.support.v4.app.FragmentManagerImpl.executeOpsTogether(FragmentManager.java:2146)
at android.support.v4.app.FragmentManagerImpl.optimizeAndExecuteOps(FragmentManager.java:2098)
at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:2008)
at android.support.v4.app.FragmentManagerImpl$1.run(FragmentManager.java:710)
at android.os.Handler.handleCallback(Handler.java:739)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:158)
at android.app.ActivityThread.main(ActivityThread.java:7224)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1230)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1120)
編輯:這隻發生在Android上。
編輯:其他信息: 這主要發生在調用Navigation.PushAsync或Navigation.PopAsync(包括用戶後退按鈕按下)時。
這是在我的應用程序中發生的最簡單的例子: 從主屏幕開始,用戶可以採取措施導致QR碼掃描頁面。此QR碼包含有關此驅動程序將提供何種負載的信息。掃描完成後,我保存信息並從導航中彈出掃描頁面,然後自動將它們推送到加載屏幕。數據加載後,我將它們推送到他們需要的信息列表中。 (所以現在導航棧有[main,loading_screen,list_view])如果此時調用了任何Navigation.PopAsync(或PushAsync),那麼應用程序會崩潰。
當你做導航時,你能找到代碼調用unFocus函數的位置嗎? –
我從不直接進行任何未聚焦的調用。它發生在調用Navigation.PushAsync或Navigation.PopAsync(包括用戶後退按鈕)時。注意:我將進行編輯以將其包含在問題中。 – Kallmanation