无法激活 Xamarin.Forms.Platform.Android.AppCompat.MasterDetailPageRenderer 类型的实例

问题描述 投票:0回答:1

我创建了一个 Xamarin.Forms 应用程序,其中包含用于重置密码的深层链接。当我单击邮件中的重置链接时,它会打开我的应用程序。它在 ios 版本上工作正常,但当我尝试在 Android 版本上打开链接时它崩溃了。仅当应用程序位于后台时,应用程序才会崩溃,如果它不在后台,则它可以工作。应用程序崩溃时的错误消息如下。

无法从本机句柄 0x10001d(key_handle 0x9802156)激活 Xamarin.Forms.Platform.Android.AppCompat.MasterDetailPageRenderer 类型的实例。

我用谷歌搜索了这个,一些StackOverflow线程说我需要添加带有(IntPtr句柄,JniHandleOwnership转移)参数的构造函数,该参数在Xamarin.Forms 2.5版本中是obsolete,但我不能这样做,因为我正在使用Xamarin .Forms 3.5+版本。

android xamarin.forms
1个回答
0
投票

现在这变得比以前更容易,对于 Xamarin.Forms,您只需在 MainActivity 文件中添加 IntentFilter 标记,如下所述。

[IntentFilter(new[] { Intent.ActionView }, DataScheme = "https 或 http", DataHost = "您想要深层链接的站点 url", Path = [“路径列表”] 自动验证=真, 类别 = new[] { Intent.CategoryDefault, Intent.CategoryBrowsable })]

以上代码应添加到 Android 版本的 MainActivity.cs 文件中类声明的正上方

添加上述 IntentFilter 后,转到 Forms 项目并在 App.xaml.cs 中覆盖 OnAppLinkRequestReceived(Uri uri) 方法,例如,

受保护的覆盖 async void OnAppLinkRequestReceived(Uri uri) { base.OnAppLinkRequestReceived(uri); // 在此处添加代码来处理 url 并在适当的屏幕或视图上导航。 }

就是这样。欢呼。这只是您必须做的更改,深层链接工作正常。

确保您还必须将 assetlinks.json 推送到 /.wellknown 文件夹。 .WellKnown 文件夹应该位于网站文件夹的根目录中。

这里是可用深层链接的详细信息 您可以检查一下,如果您还有任何问题或疑问,请随时提出任何问题

© www.soinside.com 2019 - 2024. All rights reserved.