私はXamarin.Formsをクロスプラットフォームで使用するために開発中です。最近、MacでXamarin Studioをアップデートし、NuGetパッケージをアップデートしました。"Xamarin"がnullメソッド参照を呼び出すようにしようとしました "
このエラーが発生しました。ヌルオブジェクトリファレンスで仮想メソッド 'void 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)
EDIT:これはAndroid上で発生します。
EDIT:その他の情報: これは、主にNavigation.PushAsyncまたはNavigation.PopAsync(ユーザーの戻るボタンが押されていることを含む)を呼び出すときに発生します。
私のアプリでこれが起こっている最も単純な例は次のとおりです。 ホーム画面から、ユーザーはQRコードスキャンページに進むための行動を取ることができます。このQRコードには、このドライバが配信する負荷に関する情報が含まれています。スキャンした後、情報を保存し、ナビゲーションからスキャンページをポップしてから自動的に読み込み画面にプッシュします。データのロード後、必要な情報のリストにそれらをプッシュします。 (ナビゲーションスタックに[main、loading_screen、list_view]があります)この時点でNavigation.PopAsync(またはPushAsync)が呼び出されると、アプリケーションがクラッシュします。
ナビゲーションを実行すると、コードがunFocus関数を呼び出す場所を見つけることができますか? –
私は決してunFocus呼び出しを直接行いません。これは、Navigation.PushAsyncまたはNavigation.PopAsync(ユーザーの戻るボタンの押下を含む)の呼び出し時に発生します。注:質問にこれを含めるように編集します。 – Kallmanation