NetworkInfo.IsConnected 对象引用未设置为 xamarin 上对象的实例
NetworkInfo.IsConnected Object reference not set to an instance of an object on xamarin
我正在尝试检测与 Xamarin 的连接 Android。
当我连接到 wifi 或漫游时,我没有任何错误。
但是当我没有连接到互联网时,我遇到 System.NullReferenceException 错误并且应用程序崩溃。
ConnectivityManager connectivityManager = (ConnectivityManager)GetSystemService(ConnectivityService);
NetworkInfo info = connectivityManager.ActiveNetworkInfo;
bool isOnline = info.IsConnected; //error is here
通常情况下,bool isConnected 应该变为 false。但是我不知道为什么它是空的。
我该如何解决?
如果您没有连接到互联网,connectivityManager.ActiveNetworkInfo
很可能返回空值,因此尝试访问空对象的 属性 IsConnected
会产生 NullReferenceException
快速修复:
//Use a ternary expression to evaluate whether info equals null, if so set
//bool to false, else use the IsConnected property
bool isOnline = info == null ? false : info.IsConnected;
我正在尝试检测与 Xamarin 的连接 Android。
当我连接到 wifi 或漫游时,我没有任何错误。
但是当我没有连接到互联网时,我遇到 System.NullReferenceException 错误并且应用程序崩溃。
ConnectivityManager connectivityManager = (ConnectivityManager)GetSystemService(ConnectivityService);
NetworkInfo info = connectivityManager.ActiveNetworkInfo;
bool isOnline = info.IsConnected; //error is here
通常情况下,bool isConnected 应该变为 false。但是我不知道为什么它是空的。
我该如何解决?
如果您没有连接到互联网,connectivityManager.ActiveNetworkInfo
很可能返回空值,因此尝试访问空对象的 属性 IsConnected
会产生 NullReferenceException
快速修复:
//Use a ternary expression to evaluate whether info equals null, if so set
//bool to false, else use the IsConnected property
bool isOnline = info == null ? false : info.IsConnected;