Xamarin XCalendar Plugin error: TargetInvocationException
Xamarin XCalendar Plugin error: TargetInvocationException
我是 Xamarin 的新手,对 C# 不是很有经验。我安装了 Xamarin XCalendar 插件并尝试实施 EventCalendarExample 示例代码 (see GitHub here) 以更好地理解此代码的工作原理并学习如何修改和使用它。我对 Xamarin 的日历插件进行了一些研究,并喜欢这个插件,因为它展示了如何使用它。我查看的其他一些没有太多文档或示例代码可供查看。
我在我的项目中完全按原样实现了代码,但是,当我在调试代码时点击日历选项卡时,我收到以下错误:
System.Reflection.TargetInvocationException: 'Exception has been thrown by the target of an invocation.'
我的以下文件在 GitHub 中实现:
- Models/Event.cs
- Converters/EventWhereConverter
- ViewModels/BaseViewModel.cs
- 查看Models/EventCalendarExampleViewModel.cs
- Views/EventCalendarExamplePage.xaml
- Views/EventCalendarExamplePage.xaml.cs
我的AppShell.xaml在下面。请注意,我的 EventCalendarExamplePage 名为 EventManagerPage。
<?xml version="1.0" encoding="UTF-8"?>
<Shell xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
xmlns:local="clr-namespace:PPA.Views"
Title="PPA"
x:Class="PPA.AppShell"
>
<!--
The overall app visual hierarchy is defined here, along with navigation.
https://docs.microsoft.com/xamarin/xamarin-forms/app-fundamentals/shell/
-->
<Shell.Resources>
<ResourceDictionary>
<Style x:Key="BaseStyle" TargetType="Element">
<Setter Property="Shell.BackgroundColor" Value="{StaticResource Primary}" />
<Setter Property="Shell.ForegroundColor" Value="White" />
<Setter Property="Shell.TitleColor" Value="White" />
<Setter Property="Shell.DisabledColor" Value="#B4FFFFFF" />
<Setter Property="Shell.UnselectedColor" Value="#95FFFFFF" />
<Setter Property="Shell.TabBarBackgroundColor" Value="{StaticResource Primary}" />
<Setter Property="Shell.TabBarForegroundColor" Value="White"/>
<Setter Property="Shell.TabBarUnselectedColor" Value="#95FFFFFF"/>
<Setter Property="Shell.TabBarTitleColor" Value="White"/>
</Style>
<Style TargetType="TabBar" BasedOn="{StaticResource BaseStyle}" />
<Style TargetType="FlyoutItem" BasedOn="{StaticResource BaseStyle}" />
</ResourceDictionary>
</Shell.Resources>
<TabBar>
<ShellContent Title="Tasks" Icon="icon_about.png" Route="TaskManagerPage" ContentTemplate="{DataTemplate local:TaskManagerPage}" />
<ShellContent Title="Events" Icon="icon_about.png" Route="EventManagerPage" ContentTemplate="{DataTemplate local:EventManagerPage}" />
<ShellContent Title="Reminders" Icon="icon_about.png" Route="ReminderManagerPage" ContentTemplate="{DataTemplate local:ReminderManagerPage}"/>
</TabBar>
</Shell>
我环顾四周,没有看到其他人出现此错误。任何信息或建议将不胜感激!
注意 - 这是我在模拟器中单击日历选项卡时在“输出”窗格中看到的唯一文本。
[OpenGLRenderer] Davey! duration=1240ms; Flags=0, IntendedVsync=16577769666564, Vsync=16577769666564, OldestInputEvent=9223372036854775807, NewestInputEvent=0, HandleInputStart=16577772074980, AnimationStart=16577772093180, PerformTraversalsStart=16577772332780, DrawStart=16577773064980, SyncQueued=16577774097980, SyncStart=16577775454680, IssueDrawCommandsStart=16577775647080, SwapBuffers=16579009952980, FrameCompleted=16579011771880, DequeueBufferDuration=449700, QueueBufferDuration=929200, GpuCompleted=0,
[TabLayout] MODE_SCROLLABLE + GRAVITY_FILL is not supported, GRAVITY_START will be used instead
**System.Reflection.TargetInvocationException:** 'Exception has been thrown by the target of an invocation.'
我在寻找堆栈跟踪或其他包含更多信息的东西,但我只能找到这些。错误列表没有任何内容,调用堆栈选项卡仅显示 [外部代码]。当我按照建议从异常框中单击“复制详细信息”时,我得到以下内容,没有其他内容。
System.Reflection.TargetInvocationException
Message=Exception has been thrown by the target of an invocation.
原来我遗漏了一些引用的静态资源,导致它崩溃。感谢 ToolmakerSteve 提供有关 innerexception 的更多信息。我没有意识到这个异常有任何内部组件。
我能够将组件初始化包装在 try-catch 中,并在抛出时在弹出框中将异常打印为 .ToString() 。 VS 将堆栈跟踪显示为外部代码很奇怪,但我很高兴看到有关异常的更多信息。
我是 Xamarin 的新手,对 C# 不是很有经验。我安装了 Xamarin XCalendar 插件并尝试实施 EventCalendarExample 示例代码 (see GitHub here) 以更好地理解此代码的工作原理并学习如何修改和使用它。我对 Xamarin 的日历插件进行了一些研究,并喜欢这个插件,因为它展示了如何使用它。我查看的其他一些没有太多文档或示例代码可供查看。
我在我的项目中完全按原样实现了代码,但是,当我在调试代码时点击日历选项卡时,我收到以下错误:
System.Reflection.TargetInvocationException: 'Exception has been thrown by the target of an invocation.'
我的以下文件在 GitHub 中实现:
- Models/Event.cs
- Converters/EventWhereConverter
- ViewModels/BaseViewModel.cs
- 查看Models/EventCalendarExampleViewModel.cs
- Views/EventCalendarExamplePage.xaml
- Views/EventCalendarExamplePage.xaml.cs
我的AppShell.xaml在下面。请注意,我的 EventCalendarExamplePage 名为 EventManagerPage。
<?xml version="1.0" encoding="UTF-8"?>
<Shell xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
xmlns:local="clr-namespace:PPA.Views"
Title="PPA"
x:Class="PPA.AppShell"
>
<!--
The overall app visual hierarchy is defined here, along with navigation.
https://docs.microsoft.com/xamarin/xamarin-forms/app-fundamentals/shell/
-->
<Shell.Resources>
<ResourceDictionary>
<Style x:Key="BaseStyle" TargetType="Element">
<Setter Property="Shell.BackgroundColor" Value="{StaticResource Primary}" />
<Setter Property="Shell.ForegroundColor" Value="White" />
<Setter Property="Shell.TitleColor" Value="White" />
<Setter Property="Shell.DisabledColor" Value="#B4FFFFFF" />
<Setter Property="Shell.UnselectedColor" Value="#95FFFFFF" />
<Setter Property="Shell.TabBarBackgroundColor" Value="{StaticResource Primary}" />
<Setter Property="Shell.TabBarForegroundColor" Value="White"/>
<Setter Property="Shell.TabBarUnselectedColor" Value="#95FFFFFF"/>
<Setter Property="Shell.TabBarTitleColor" Value="White"/>
</Style>
<Style TargetType="TabBar" BasedOn="{StaticResource BaseStyle}" />
<Style TargetType="FlyoutItem" BasedOn="{StaticResource BaseStyle}" />
</ResourceDictionary>
</Shell.Resources>
<TabBar>
<ShellContent Title="Tasks" Icon="icon_about.png" Route="TaskManagerPage" ContentTemplate="{DataTemplate local:TaskManagerPage}" />
<ShellContent Title="Events" Icon="icon_about.png" Route="EventManagerPage" ContentTemplate="{DataTemplate local:EventManagerPage}" />
<ShellContent Title="Reminders" Icon="icon_about.png" Route="ReminderManagerPage" ContentTemplate="{DataTemplate local:ReminderManagerPage}"/>
</TabBar>
</Shell>
我环顾四周,没有看到其他人出现此错误。任何信息或建议将不胜感激!
注意 - 这是我在模拟器中单击日历选项卡时在“输出”窗格中看到的唯一文本。
[OpenGLRenderer] Davey! duration=1240ms; Flags=0, IntendedVsync=16577769666564, Vsync=16577769666564, OldestInputEvent=9223372036854775807, NewestInputEvent=0, HandleInputStart=16577772074980, AnimationStart=16577772093180, PerformTraversalsStart=16577772332780, DrawStart=16577773064980, SyncQueued=16577774097980, SyncStart=16577775454680, IssueDrawCommandsStart=16577775647080, SwapBuffers=16579009952980, FrameCompleted=16579011771880, DequeueBufferDuration=449700, QueueBufferDuration=929200, GpuCompleted=0,
[TabLayout] MODE_SCROLLABLE + GRAVITY_FILL is not supported, GRAVITY_START will be used instead
**System.Reflection.TargetInvocationException:** 'Exception has been thrown by the target of an invocation.'
我在寻找堆栈跟踪或其他包含更多信息的东西,但我只能找到这些。错误列表没有任何内容,调用堆栈选项卡仅显示 [外部代码]。当我按照建议从异常框中单击“复制详细信息”时,我得到以下内容,没有其他内容。
System.Reflection.TargetInvocationException Message=Exception has been thrown by the target of an invocation.
原来我遗漏了一些引用的静态资源,导致它崩溃。感谢 ToolmakerSteve 提供有关 innerexception 的更多信息。我没有意识到这个异常有任何内部组件。
我能够将组件初始化包装在 try-catch 中,并在抛出时在弹出框中将异常打印为 .ToString() 。 VS 将堆栈跟踪显示为外部代码很奇怪,但我很高兴看到有关异常的更多信息。