Uno Platform Android 版本无法 运行
Uno Platform Android versions fails to run
我已经启动了一个测试应用程序来测试 TabBar 以替换我的 bottomNavigationBar,因为它在 Uno.Material 中不再可用。我制作了一个简单的应用程序,运行s 在 Android、IOS 和 UWP 上没有问题。当我在 Material 中添加代码时,它 运行 在 UWP 和 IOS 上没问题。然而,当我 运行 它在 Android 上时,它会构建和部署而不是 运行。我还需要做些什么才能在 Android 上获得它 运行 吗?注意:我按照说明安装了 Xamarin.AndroidX.AppCompat 和 Xamarin.AndroidX.LifeCycle.LiveData。我收到以下错误:
System.InvalidOperationException
Message=Failed to load unoMaterialSample2.MainPage: System.MissingMethodException: Method not found: void Windows.UI.Xaml.UIElement.set_Name(string)
这是我的 App.Xaml:
<Application
x:Class="unoMaterialSample2.App"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="using:unoMaterialSample2">
<!-- Place resources here -->
<Application.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<XamlControlsResources xmlns="using:Microsoft.UI.Xaml.Controls" />
<!-- Place resources here -->
<ToolkitResources xmlns="using:Uno.Toolkit.UI" />
<MaterialColors xmlns="using:Uno.Material"
OverrideSource="ms-appx:///Design/ColorPaletteOverride.xaml" />
<MaterialResources xmlns="using:Uno.Material" />
<MaterialToolkitColors xmlns="using:Uno.Toolkit.UI.Material"
OverrideSource="ms-appx:///Design/ColorPaletteOverride.xaml" />
<MaterialToolkitResources xmlns="using:Uno.Toolkit.UI.Material" />
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
</Application.Resources>
</Application>
MainPage.Xaml:
<Page
x:Class="unoMaterialSample2.MainPage"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="using:unoMaterialSample2"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:toolkit="using:Uno.UI.Toolkit"
mc:Ignorable="d"
Background="{ThemeResource ApplicationPageBackgroundThemeBrush}">
<Grid toolkit:VisibleBoundsPadding.PaddingMask="All">
<Grid.RowDefinitions>
<RowDefinition Height="70*"/>
<RowDefinition Height="470*"/>
<RowDefinition Height="Auto"/>
</Grid.RowDefinitions>
<TextBlock x:Name="testText" Grid.Row="0" Text="Hello, world!" Margin="20" FontSize="30" />
<Button Grid.Row="1" Content="Example" Style="{StaticResource MaterialContainedButtonStyle}" Click="bClick" />
<utu:TabBar Grid.Row="2" Style="{StaticResource MaterialBottomTabBarStyle}"
xmlns:utu="using:Uno.Toolkit.UI">
<utu:TabBar.Items>
<utu:TabBarItem Content="Home">
<utu:TabBarItem.Icon>
<FontIcon Glyph="" />
</utu:TabBarItem.Icon>
</utu:TabBarItem>
<utu:TabBarItem Content="Support">
<utu:TabBarItem.Icon>
<FontIcon Glyph="" />
</utu:TabBarItem.Icon>
</utu:TabBarItem>
<utu:TabBarItem Content="About">
<utu:TabBarItem.Icon>
<FontIcon Glyph="" />
</utu:TabBarItem.Icon>
</utu:TabBarItem>
</utu:TabBar.Items>
</utu:TabBar>
</Grid>
</Page>
所以 - 如果其他人遇到此问题,这就是我最终解决问题的方法。我一直在忽略 visual studio 警告,即 Google Play 指示您至少需要使用 Android 11 进行编译。一旦我在 Android 项目属性中切换它 - 瞧 - 它已编译,现在按预期工作。
我已经启动了一个测试应用程序来测试 TabBar 以替换我的 bottomNavigationBar,因为它在 Uno.Material 中不再可用。我制作了一个简单的应用程序,运行s 在 Android、IOS 和 UWP 上没有问题。当我在 Material 中添加代码时,它 运行 在 UWP 和 IOS 上没问题。然而,当我 运行 它在 Android 上时,它会构建和部署而不是 运行。我还需要做些什么才能在 Android 上获得它 运行 吗?注意:我按照说明安装了 Xamarin.AndroidX.AppCompat 和 Xamarin.AndroidX.LifeCycle.LiveData。我收到以下错误:
System.InvalidOperationException Message=Failed to load unoMaterialSample2.MainPage: System.MissingMethodException: Method not found: void Windows.UI.Xaml.UIElement.set_Name(string)
这是我的 App.Xaml:
<Application
x:Class="unoMaterialSample2.App"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="using:unoMaterialSample2">
<!-- Place resources here -->
<Application.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<XamlControlsResources xmlns="using:Microsoft.UI.Xaml.Controls" />
<!-- Place resources here -->
<ToolkitResources xmlns="using:Uno.Toolkit.UI" />
<MaterialColors xmlns="using:Uno.Material"
OverrideSource="ms-appx:///Design/ColorPaletteOverride.xaml" />
<MaterialResources xmlns="using:Uno.Material" />
<MaterialToolkitColors xmlns="using:Uno.Toolkit.UI.Material"
OverrideSource="ms-appx:///Design/ColorPaletteOverride.xaml" />
<MaterialToolkitResources xmlns="using:Uno.Toolkit.UI.Material" />
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
</Application.Resources>
</Application>
MainPage.Xaml:
<Page
x:Class="unoMaterialSample2.MainPage"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="using:unoMaterialSample2"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:toolkit="using:Uno.UI.Toolkit"
mc:Ignorable="d"
Background="{ThemeResource ApplicationPageBackgroundThemeBrush}">
<Grid toolkit:VisibleBoundsPadding.PaddingMask="All">
<Grid.RowDefinitions>
<RowDefinition Height="70*"/>
<RowDefinition Height="470*"/>
<RowDefinition Height="Auto"/>
</Grid.RowDefinitions>
<TextBlock x:Name="testText" Grid.Row="0" Text="Hello, world!" Margin="20" FontSize="30" />
<Button Grid.Row="1" Content="Example" Style="{StaticResource MaterialContainedButtonStyle}" Click="bClick" />
<utu:TabBar Grid.Row="2" Style="{StaticResource MaterialBottomTabBarStyle}"
xmlns:utu="using:Uno.Toolkit.UI">
<utu:TabBar.Items>
<utu:TabBarItem Content="Home">
<utu:TabBarItem.Icon>
<FontIcon Glyph="" />
</utu:TabBarItem.Icon>
</utu:TabBarItem>
<utu:TabBarItem Content="Support">
<utu:TabBarItem.Icon>
<FontIcon Glyph="" />
</utu:TabBarItem.Icon>
</utu:TabBarItem>
<utu:TabBarItem Content="About">
<utu:TabBarItem.Icon>
<FontIcon Glyph="" />
</utu:TabBarItem.Icon>
</utu:TabBarItem>
</utu:TabBar.Items>
</utu:TabBar>
</Grid>
</Page>
所以 - 如果其他人遇到此问题,这就是我最终解决问题的方法。我一直在忽略 visual studio 警告,即 Google Play 指示您至少需要使用 Android 11 进行编译。一旦我在 Android 项目属性中切换它 - 瞧 - 它已编译,现在按预期工作。