0

我在调用 Acitiviy.ShowDialog(int) 以响应用户点击按钮时收到 NullReferenceException。该异常发生在 Android 2.1 中,但不在 Android 4.2 中。这是堆栈跟踪:

UNHANDLED EXCEPTION: System.NullReferenceException: Object reference not set to an instance of an object
at (wrapper delegate-invoke) <Module>.invoke_void__this___intptr_intptr_intptr_JValue[] (intptr,intptr,intptr,Android.Runtime.JValue[]) <0x000b3>
at Android.Runtime.JNIEnv.CallVoidMethod (intptr,intptr,Android.Runtime.JValue[]) <0x00053>
at Android.App.Activity.ShowDialog (int) <0x0011f>
at MyApp.AndroidApp.InvoiceActivity.ShowScheduleDateDialog (object,System.EventArgs) <0x0003b>
at Android.Views.View/IOnClickListenerImplementor.OnClick (Android.Views.View) <0x00057>
at Android.Views.View/IOnClickListenerInvoker.n_OnClick_Landroid_view_View_ (intptr,intptr,intptr) <0x00063>
at (wrapper dynamic-method) object.be0dcca3-9ca4-47b4-a6a4-f691d34675f1 (intptr,intptr,intptr) <0x00043>

有任何想法吗?

4

1 回答 1

0

我发现了一个奇怪的解决方法。我注意到,如果应用程序在尝试显示 DatePickerDialog 之前的任何时候打开一个 AlertDialog,它就可以工作。所以这样做:

var helperDialog = new AlertDialog.Builder(this).SetTitle("").Show();
helperDialog.Hide();

在 OnCreateDialog 返回 DatePickerDialog 之前似乎可以解决问题。这是一个非常难看的解决方法,但它似乎对最终用户没有任何副作用。

不知道这是 Android 错误还是 Monodroid 错误。

于 2013-05-10T14:50:59.870 回答