1

所以我有一个 Xamarin Forms Shell 应用程序,Shellcontents 设置如下:

<Shell etc etc>
<ShellContent ContentTemplate="Temp1" Route="routeA" Title="titleA" />    
<ShellContent ContentTemplate="Temp2" Route="routeB" Title="titleB" />    
    <MenuItem Text="{x:Static rx:AppResources.Logout}" Command="{Binding LogoutCommand}"/>

</Shell>

启动时,ShellContent A 显示一切正常。但是当我触摸titleB的那一刻,我得到了这个愚蠢的错误。我一直无法弄清楚,这个错误来自哪里。有什么想法我应该在哪里看?

 No package ID ff found for ID 0xffffffff.
[AndroidRuntime] Shutting down VM
[AndroidRuntime] FATAL EXCEPTION: main

[AndroidRuntime] android.content.res.Resources$NotFoundException: Unable to find resource ID #0xffffffff
[AndroidRuntime]    at android.content.res.ResourcesImpl.getResourceTypeName(ResourcesImpl.java:334)
[AndroidRuntime]    at android.content.res.Resources.getResourceTypeName(Resources.java:2300)
[AndroidRuntime]    at androidx.fragment.app.FragmentAnim.loadAnimation(FragmentAnim.java:79)
[AndroidRuntime]    at androidx.fragment.app.DefaultSpecialEffectsController$AnimationInfo.getAnimation(DefaultSpecialEffectsController.java:774)
[AndroidRuntime]    at androidx.fragment.app.DefaultSpecialEffectsController.startAnimations(DefaultSpecialEffectsController.java:144)
[AndroidRuntime]    at androidx.fragment.app.DefaultSpecialEffectsController.executeOperations(DefaultSpecialEffectsController.java:120)
[AndroidRuntime]    at androidx.fragment.app.SpecialEffectsController.executePendingOperations(SpecialEffectsController.java:294)
[AndroidRuntime]    at androidx.fragment.app.FragmentManager.executeOpsTogether(FragmentManager.java:2190)
[AndroidRuntime]    at androidx.fragment.app.FragmentManager.removeRedundantOperationsAndExecute(FragmentManager.java:2088)
[AndroidRuntime]    at androidx.fragment.app.FragmentManager.execPendingActions(FragmentManager.java:1990)
[AndroidRuntime]    at androidx.fragment.app.FragmentManager$5.run(FragmentManager.java:524)
[AndroidRuntime]    at android.os.Handler.handleCallback(Handler.java:938)
[AndroidRuntime]    at androidx.fragment.app.DefaultSpecialEffectsController.startAnimations(DefaultSpecialEffectsControlleer.dispatchMessage(Handler.java:99)
[AndroidRuntime]    at android.os.Looper.loop(Looper.java:246)
[AndroidRuntime]    at android.app.ActivityThread.main(ActivityThread.java:8430)
[AndroidRuntime]    at java.lang.reflect.Method.invoke(Native Method)
[AndroidRuntime]    at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:596)
[AndroidRuntime]    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1130)
4

2 回答 2

0

当我按照此处的提示将 Xamarin.Google.Android.Material 降级到 v1.2.1.1 时,我能够更正此错误:

https://github.com/xamarin/Xamarin.Forms/issues/13843

于 2021-06-03T14:58:25.400 回答
0

我没有Temp1and Temp2。我创建了一个 Shell Tenplate 来测试。它在我身边有效。你可以检查下面的代码。

xml:

<ShellContent
    Title="titleA"
    ContentTemplate="{DataTemplate local:ItemsPage}"
    Route="routeA" />
<ShellContent
    Title="titleB"
    ContentTemplate="{DataTemplate local:AboutPage}"
    Route="routeB" />

<MenuItem Command="{Binding LogoutCommand}" Text="Page1" />

代码绑定:

public partial class AppShell : Xamarin.Forms.Shell
{
    public ICommand LogoutCommand => new Command(async () => await Shell.Current.GoToAsync("page1"));

    public AppShell()
    {
        InitializeComponent();
        Routing.RegisterRoute("page1", typeof(Page1));
        this.BindingContext = this;
    }
}
于 2021-02-24T07:15:57.027 回答