You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Connectivity.NetworkAccess遇NotImplementedInReferenceAssemblyException报错求助

解决Xamarin.Essentials联网检查的NotImplemented异常问题

以下是针对该问题的具体排查和解决步骤:

  • 统一NuGet包版本:确保主项目(共享/PCL项目)和Android项目安装的Xamarin.Essentials版本完全一致。版本不匹配会导致平台特定实现无法正确绑定,建议统一升级到最新稳定版。
  • 清理缓存并重建:手动删除主项目和Android项目根目录下的bin、obj文件夹,然后在Visual Studio中依次执行「清理解决方案」→「重建解决方案」。旧缓存的程序集经常会引发这类冲突。
  • 确认Android项目的初始化代码:在Android项目的MainActivity中,必须完成Xamarin.Essentials的初始化:
    protected override void OnCreate(Bundle savedInstanceState)
    {
        base.OnCreate(savedInstanceState);
        // 初始化Xamarin.Essentials
        Xamarin.Essentials.Platform.Init(this, savedInstanceState);
        // 其他页面初始化代码
    }
    
    // 必须重写此方法传递权限请求结果
    public override void OnRequestPermissionsResult(int requestCode, string[] permissions, Android.Content.PM.Permission[] grantResults)
    {
        Xamarin.Essentials.Platform.OnRequestPermissionsResult(requestCode, permissions, grantResults);
        base.OnRequestPermissionsResult(requestCode, permissions, grantResults);
    }
    
  • 检查程序集引用来源:右键主项目→「引用」,确认Xamarin.Essentials是通过NuGet安装的,而非手动添加的本地程序集。如果存在手动引用,删除后重新通过NuGet安装。
  • 迁移到.NET Standard类库:如果主项目是PCL(可移植类库),建议迁移为.NET Standard类库,Xamarin.Essentials对.NET Standard的支持更完善,能减少这类兼容性问题。
  • 排查项目冲突:新建一个空白Xamarin.Forms项目,仅安装Xamarin.Essentials并调用Connectivity.NetworkAccess测试。如果新项目正常运行,说明原项目存在配置或代码冲突,可逐步迁移代码定位问题。

内容的提问来源于stack exchange,提问作者derprogrammierer

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.28 02:12:49