【发布时间】:2022-06-21 19:29:25
【问题描述】:
我尝试连接到特定的 Wifi,但每次我收到 System.NullReferenceException: 'Object reference not set to an instance of an object。 (在代码中注释)
这是我的方法
public static Task ConnectToWifi(Wifi wifi)
{
var wifiSpecififier = new WifiNetworkSpecifier.Builder()
.SetSsid(wifi.SSID)
.SetWpa2Passphrase(wifi.Password)
.SetIsHiddenSsid(wifi.Hidden)
.Build();
var request = new Android.Net.NetworkRequest.Builder()
.AddTransportType(Android.Net.TransportType.Wifi)
.RemoveCapability(Android.Net.NetCapability.Internet)
.SetNetworkSpecifier(wifiSpecififier)
.Build();
var connectivityManager = Android.App.Application.Context.GetSystemService(
Android.App.Application.ConnectivityService) as Android.Net.ConnectivityManager;
connectivityManager.RequestNetwork(request, new NetworkCallback()); //nullex
return Task.CompletedTask;
}
这是我的 NetworkCallback 类
public class NetworkCallback : Android.Net.ConnectivityManager.NetworkCallback
{
public static Android.Content.Context context = Android.App.Application.Context;
Android.Net.ConnectivityManager connectivityManager = (Android.Net.ConnectivityManager)context.GetSystemService(Android.App.Application.ConnectivityService);
public override void OnAvailable(Android.Net.Network network)
{
base.OnAvailable(network);
connectivityManager.BindProcessToNetwork(network);
}
public override void OnUnavailable() => base.OnUnavailable();
}
编辑:
在 /Users/runner/work/1/s/xamarin-android/src/Mono.Android/Android.Runtime/JNINativeWrapper.g 中的 Android.Runtime.JNINativeWrapper._unhandled_exception (System.Exception e) [0x0000e]。 CS:12 在 Android.Runtime.JNINativeWrapper.Wrap_JniMarshal_PPL_V (_JniMarshal_PPL_V 回调,System.IntPtr jnienv,System.IntPtr klazz,System.IntPtr p0) [0x0001d] 在 /Users/runner/work/1/s/xamarin-android/src/Mono。 Android/Android.Runtime/JNINativeWrapper.g.cs:111 在(包装器本机到托管)Android.Runtime.JNINativeWrapper.Wrap_JniMarshal_PPL_V(intptr,intptr,intptr)
【问题讨论】:
-
如果您知道哪一行导致了异常,那么您需要确定该行上的哪个元素为空。我们不能为你这样做。使用调试器或检查堆栈跟踪以获取更多信息
-
好问题大声笑我调试这个什么都不是空的
-
显然是。查看堆栈跟踪以了解根本原因是什么
-
request = {NetworkRequest [ NONE id=0, [ 传输:WIFI 功能:NOT_RESTRICTED&TRUSTED&NOT_VPN 说明符:
Uid: 10154 AdministratorUids: [] RequestorUid: -1 RequestorPackageName: null] ]} AND new NetworkCallback() = {crc64c1fb061c2ccb06a5.NetworkCallback@1671fdb} -
我的堆栈跟踪:在 Android.Runtime.JNINativeWrapper._unhandled_exception (System.Exception e) [0x0000e] 在 /Users/runner/work/1/s/xamarin-android/src/Mono.Android/ Android.Runtime/JNINativeWrapper.g.cs:12 在 Android.Runtime.JNINativeWrapper.Wrap_JniMarshal_PPL_V (_JniMarshal_PPL_V 回调,System.IntPtr jnienv,System.IntPtr klazz,System.IntPtr p0) [0x0001d] 在 /Users/runner/work/1 /s/xamarin-android/src/Mono.Android/Android.Runtime/JNINativeWrapper.g.cs:111 at (wrapper native-to-managed) Android.Runtime.JNINativeWrapper.Wrap_JniMarshal_PPL_V(intptr,intptr,intptr)
标签: c# android xamarin.forms xamarin.android android-wifi