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

Android断网再联网后MAUI Blazor应用出现未处理异常求助

问题描述

开发基于MAUI Blazor的应用,实现移动设备本地存储信息同步上传至数据库的功能。在Android设备上,断开网络后重新连接时,触发未处理异常:

System.ObjectDisposedException: 'ObjectDisposed_StreamClosed'

异常堆栈信息:

0xFFFFFFFFFFFFFFFF in Android.Runtime.JNIEnv.monodroid_debugger_unhandled_exception
0x1A in Android.Runtime.JNINativeWrapper._unhandled_exception at /Users/runner/work/1/s/xamarin-android/src/Mono.Android/Android.Runtime/JNINativeWrapper.g.cs:12,5 
0x23 in Android.Runtime.JNINativeWrapper.Wrap_JniMarshal_PPLII_I at /Users/runner/work/1/s/xamarin-android/src/Mono.Android/Android.Runtime/JNINativeWrapper.g.cs:265,26    
0xB in System.ThrowHelper.ThrowObjectDisposedException_StreamClosed
0x9 in System.IO.MemoryStream.EnsureNotClosed
0x9 in System.IO.MemoryStream.Read
0x9 in Android.Runtime.InputStreamAdapter.Read at /Users/runner/work/1/s/xamarin-android/src/Mono.Android/Android.Runtime/InputStreamAdapter.cs:38,4
0x23 in Java.IO.InputStream.n_Read_arrayBII at /Users/runner/work/1/s/xamarin-android/src/Mono.Android/obj/Release/net7.0/android-33/mcw/Java.IO.InputStream.cs:264,4
0xD in Android.Runtime.JNINativeWrapper.Wrap_JniMarshal_PPLII_I at /Users/runner/work/1/s/xamarin-android/src/Mono.Android/Android.Runtime/JNINativeWrapper.g.cs:264,5

原因分析

  1. 流对象提前释放:网络断开时,上传请求被中断,对应的MemoryStream或包装它的InputStreamAdapter被提前Dispose,但网络恢复后,重试逻辑仍尝试读取已释放的流对象,触发ObjectDisposedException。
  2. 跨平台流适配冲突:Android平台下InputStreamAdapter是.NET流与Java流的桥接层,网络中断时Java侧可能主动关闭流资源,但.NET侧未同步标记流状态,导致后续读取操作失败。
  3. 重试逻辑复用无效资源:同步重试机制未在每次重试时重新创建流对象,而是复用了之前已被释放的实例,引发资源访问冲突。

解决思路

  • 每次重试重新构建流:避免复用已存在的流实例,在重试上传前,从本地存储重新读取数据并创建新的MemoryStream对象,确保每次操作都使用未被Dispose的流。
  • 添加流状态前置检查:在读取流之前,先检查流的CanRead属性,若返回false(已关闭/释放),则放弃当前流并重新初始化。
  • 完善网络异常的资源清理:捕获网络中断引发的异常时,主动Dispose当前关联的流资源,并清理相关引用,防止后续重试时访问无效对象。
  • 规避跨平台流桥接风险:在Android平台下,避免直接传递.NET流到Java桥接层,可先将流数据复制到临时缓冲区,再通过缓冲区构建新的流对象用于上传,减少跨平台资源管理冲突。
  • 校验网络同步的生命周期:检查MAUI的网络状态监听逻辑,确保网络恢复时触发的同步操作是完整的新请求,而非复用之前中断请求的上下文资源。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.17 23:32:58