我目前正在使用.NET MAUI开发一个应用程序,我遇到了一个无法解决的问题。当我在调试的时候,我在android平台上导航页面时捕捉到了一个奇怪的异常
该应用程序有两个选项卡:主页和自助登录后,用户将进入“主页”选项卡。但是,当我尝试从主页导航到任何其他页面时,应用程序抛出以下错误并随后崩溃:
无法访问已释放的对象。对象名称:'Microsoft.Maui.Platform.ContentViewGroup'
这是我的xaml代码:
<?xml version="1.0" encoding="utf-8" ?>
<ContentPage xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
x:Class="Views.Dashboard.HomePageDashboard"
Title="HomePageDashboard">
<Shell.TitleView>
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="9*" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<Frame
Grid.Column="1"
HeightRequest="40"
WidthRequest="40"
CornerRadius="20"
BackgroundColor="Transparent"
HorizontalOptions="Center"
VerticalOptions="Center"
IsClippedToBounds="True"
Padding="0"
>
<Border BackgroundColor="{StaticResource PrimaryColorLight}">
<Label Text="{Binding ProfileImageLabel}" TextColor="White" FontSize="Micro" LineBreakMode="WordWrap" HorizontalOptions="Center" VerticalOptions="Center"/>
<Border.GestureRecognizers>
<TapGestureRecognizer Command="{Binding GotoProfileCommand}"/>
</Border.GestureRecognizers>
</Border>
</Frame>
</Grid>
</Shell.TitleView>
<VerticalStackLayout Margin="0,30,0,0">
<Label Text="Categories" FontSize="Subtitle" FontAttributes="Bold" FontFamily="Bold" HorizontalOptions="Start" VerticalOptions="Start" TextColor="{AppThemeBinding Light={StaticResource Black},Dark={StaticResource Gray400}}"/>
<Frame CornerRadius="10" Margin="0,20,0,0">
<ListView x:Name="listCategories" Margin="-20,-10,-20,-20"
BackgroundColor="Transparent" RowHeight="60"
SeparatorColor="Gray" SeparatorVisibility="Default"
SelectedItem="{Binding ItemSelectedlv}"
ItemSelected="OnItemSelected">
<ListView.ItemTemplate>
<DataTemplate>
<ViewCell>
<StackLayout>
<Grid x:DataType="model:HomePageListInfo">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="2*" />
<ColumnDefinition Width="7*" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<Image Grid.Column="0" HorizontalOptions="Center" VerticalOptions="Center"
HeightRequest="50"
WidthRequest="50"
Source="{Binding ImageResource}"
/>
<Label Grid.Column="1"
Style="{StaticResource CategoryListlabelStyle}"
FontSize="18"
Text="{Binding ListViewItemDescription}"
FontAttributes="Bold" />
<Image Grid.Column="2" HorizontalOptions="Center" VerticalOptions="Center">
<Image.Source>
<FontImageSource
x:Name="fontimage"
FontFamily="AwesomeSolid"
Glyph=""
Size="20"
Color="{AppThemeBinding Light={StaticResource Black},Dark={StaticResource White}}"/>
</Image.Source>
</Image>
</Grid>
</StackLayout>
</ViewCell>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
</Frame>
</VerticalStackLayout>
有趣的是,如果我导航到“自助”选项卡,并尝试从那里导航到其他页面,不会发生任何错误,并且应用程序按预期运行。
我已经尝试捕获并处理异常,但我仍然不确定问题的根本原因。我将非常感谢任何关于如何解决这个问题的见解或建议。
版本:VS2022 17.6我使用.net 7
1条答案
按热度按时间ergxz8rk1#
我搜索了你提到的异常消息,在github上找到了关于MAUI application error due to entry element in background operation的类似问题。
该帧在某些情况下会导致异常,如
System.ObjectDisposedException: 'Cannot access a disposed object.
。因此,您可以尝试使用border in the maui,而不是使用帧。