在Android 2上调用ShowDialog时出现NullReferenceException

时间:2013-05-09 17:44:32

标签: android xamarin.android

在响应用户点击按钮时调用Acitiviy.ShowDialog(int)时出现NullReferenceException。 Android 2.1中发生例外,但Android 4.2中没有。这是Stacktrace:

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>

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

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

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

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

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