Xamarin.Android 三星在 DatePickerDialog 上崩溃
Xamarin.Android Samsung Crashes on DatePickerDialog
我有一个 UserHandler 单例 Class 并且我声明了一个这样的变量
class UserHandler
{
...
public DatePickerDialog dialog = null;
...
}
然后在我的 MainActivity.cs 文件中
using Android.App;
using Android.Content.PM;
using Android.OS;
using Android.Runtime;
using Android.Support.Design.Widget;
using Android.Support.V7.App;
using Android.Text;
using Android.Views;
using Android.Widget;
using Java.Interop;
using Java.Lang;
using System;
using System.Collections.Generic;
using System.Globalization;
using AlertDialog = Android.Support.V7.App.AlertDialog;
using Exception = System.Exception;
class MainActivity
{
private readonly UserHandler U_Handler = UserHandler.GetInstance;
...
protected override void OnCreate(Bundle savedInstanceState)
{
base.OnCreate(savedInstanceState);
Xamarin.Essentials.Platform.Init(this, savedInstanceState);
SetContentView(Resource.Layout.activity_main);
...
U_Handler.dialog = new DatePickerDialog(this);
...
}
当我在我的设备(Oppo,Android 8.1.0)上 运行 它时,它工作正常,但是当我在其他设备(三星,Android 6.0. 1), 它崩溃了,在调试时,它显示了这个
**Java.Lang.NoSuchMethodError:** 'no non-static method "Landroid/app/DatePickerDialog;.<init>(Landroid/content/Context;)V"'
如何解决这个问题?
我应该使用第三方库吗?
因为构造函数DatePickerDialog(Context context)
是在API level 24
中添加的,当你在Samsung, Android 6.0.1
中运行它时,它会抛出Java.Lang.NoSuchMethodError
异常。
可以判断调用SDK版本小于24时使用旧API,大于24时使用新API
api你可以看看DatePickerDialog
我有一个 UserHandler 单例 Class 并且我声明了一个这样的变量
class UserHandler
{
...
public DatePickerDialog dialog = null;
...
}
然后在我的 MainActivity.cs 文件中
using Android.App;
using Android.Content.PM;
using Android.OS;
using Android.Runtime;
using Android.Support.Design.Widget;
using Android.Support.V7.App;
using Android.Text;
using Android.Views;
using Android.Widget;
using Java.Interop;
using Java.Lang;
using System;
using System.Collections.Generic;
using System.Globalization;
using AlertDialog = Android.Support.V7.App.AlertDialog;
using Exception = System.Exception;
class MainActivity
{
private readonly UserHandler U_Handler = UserHandler.GetInstance;
...
protected override void OnCreate(Bundle savedInstanceState)
{
base.OnCreate(savedInstanceState);
Xamarin.Essentials.Platform.Init(this, savedInstanceState);
SetContentView(Resource.Layout.activity_main);
...
U_Handler.dialog = new DatePickerDialog(this);
...
}
当我在我的设备(Oppo,Android 8.1.0)上 运行 它时,它工作正常,但是当我在其他设备(三星,Android 6.0. 1), 它崩溃了,在调试时,它显示了这个
**Java.Lang.NoSuchMethodError:** 'no non-static method "Landroid/app/DatePickerDialog;.<init>(Landroid/content/Context;)V"'
如何解决这个问题? 我应该使用第三方库吗?
因为构造函数DatePickerDialog(Context context)
是在API level 24
中添加的,当你在Samsung, Android 6.0.1
中运行它时,它会抛出Java.Lang.NoSuchMethodError
异常。
可以判断调用SDK版本小于24时使用旧API,大于24时使用新API
api你可以看看DatePickerDialog