由于控件初始化,Syncfusion Datagrid 使 Xamarin IOS 应用程序崩溃

Syncfusion Datagrid crashes Xamarin IOS application due to initiallising of control

我有一个 Xamarin 应用程序,其中包含 Syncfusion Datagrid 控件。我正在尝试将其部署到 visual studio 中的 IOS 模拟器。我已经添加了 NuGet 包并包含了社区许可证。但是,它没有显示在屏幕上。为了解决这个问题,我按照 https://www.syncfusion.com/forums/137574/no-visible-data-grid-on-ios-platform-only.

的建议添加了以下代码行
Syncfusion.SfDataGrid.XForms.iOS.SfDataGridRenderer.Init();

但是,这现在导致我的应用程序崩溃,唯一的调试器信息是:

main.cs:

static void Main(string[] args)
{
      // if you want to use a different Application Delegate class from "AppDelegate"
      // you can specify it here.
      UIApplication.Main(args, null, "AppDelegate"); #System.NullReferenceException: 'Object reference not set to an instance of an object'
}

AppDelegate.cs:

public override bool FinishedLaunching(UIApplication app, NSDictionary options)
{
      global::Xamarin.Forms.Forms.Init();
      Syncfusion.SfDataGrid.XForms.iOS.SfDataGridRenderer.Init();
      LoadApplication(new App());

      return base.FinishedLaunching(app, options);
}

如果我没有向您提供有关我的设置的足够信息,请尽管询问,我很乐意提供。 :)

提前致谢!

如果您使用 Xamarin.iOS 平台而不是跨平台,则不需要渲染器初始化。

以防万一,如果您使用 Xamarin.Forms 的 iOS 版本,则 refer the getting started documentation here to know the step by step configuration of the DataGrid component. Confirm that you have installed the Syncfusion.Xamarin.SfDataGrid NuGet 包。

如果您使用的是 Xamarin.iOS 平台本身,那么请 refer the documentation here for the step by step configurations and be sure that you have installed the Syncfusion.Xamarin.SfDataGrid.IOS 打包。

希望对您有所帮助。

我不知道问题的原因是什么,但是,通过将我的 Xamarin.Forms 和 Xamarin.Essentials 软件包分别降级到版本 4.5.0.495 和 1.3.1,我不再得到错误,屏幕显示正常。

我通过创建一个新的测试项目并尝试重新创建我的代码来解决这个问题。然后我尝试 运行 它并且成功了。因此,我将原始代码的版本更改为适用于由 Xamarin 模板生成的项目的版本。

感谢大家的帮助:)

我也遇到过同样的问题;最近更新后,我的应用程序崩溃并在 iOS 中的 main.cs 出现空异常。我终于隔离并解决了触发问题的原因。

当我填充 SfDataGrid 的行多于(跨平台,iOS)模拟器屏幕时出现问题;一旦我尝试垂直或水平滚动,这就会触发崩溃。但是,如果行数小于屏幕尺寸,它不会崩溃。该应用程序在大约一周前也运行良好。

原来 Xamarin.Forms 版本 4.6.0.968 的最新版本中似乎存在错误。通过将 Xamarin.Forms 降级到版本 4.6.0.847,问题得到解决。

以下 link 提供了有关此问题的更多详细信息: