如何使用错误“无虚拟方法”解决问题。在Android上
我正在为Android Pie编写一个应用程序。 我想获得WiFi信息。
@RequiresApi(api = Build.VERSION_CODES.S)
public String getData() {
String wifiDataTest;
WifiInfo wifiInfo = wifiManager.getConnectionInfo();
int frequency = wifiInfo.getFrequency();
int ipAddress = wifiInfo.getIpAddress();
int speed = wifiInfo.getLinkSpeed();
String ssid = wifiInfo.getSSID();
int wifiStandard = wifiInfo.getWifiStandard();
wifiDataTest = "Frequency [MHz]: " + frequency + "\nIP address: " + ipAddress
+ "\nSpeed [Mbps]: " + speed + "\nSSID: " + ssid + "\nWifi standard: " + wifiStandard;
return "WIFI\n" + wifiDataTest;
}
使用int wifistandard = wifiinfo.getWifistAndard();
向我显示错误:
E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.example.sensors, PID: 11040
java.lang.NoSuchMethodError: No virtual method getWifiStandard()I in class Landroid/net/wifi/WifiInfo; or its super classes (declaration of 'android.net.wifi.WifiInfo' appears in /system/framework/framework.jar)
我在任何地方都没有找到有关此类错误的信息。 GetWifistAndard();
之前的所有内容都很好。
I am writing an application in android studio for android Pie.
I want to get wifi info.
@RequiresApi(api = Build.VERSION_CODES.S)
public String getData() {
String wifiDataTest;
WifiInfo wifiInfo = wifiManager.getConnectionInfo();
int frequency = wifiInfo.getFrequency();
int ipAddress = wifiInfo.getIpAddress();
int speed = wifiInfo.getLinkSpeed();
String ssid = wifiInfo.getSSID();
int wifiStandard = wifiInfo.getWifiStandard();
wifiDataTest = "Frequency [MHz]: " + frequency + "\nIP address: " + ipAddress
+ "\nSpeed [Mbps]: " + speed + "\nSSID: " + ssid + "\nWifi standard: " + wifiStandard;
return "WIFI\n" + wifiDataTest;
}
With int wifiStandard = wifiInfo.getWifiStandard ();
shows me the error:
E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.example.sensors, PID: 11040
java.lang.NoSuchMethodError: No virtual method getWifiStandard()I in class Landroid/net/wifi/WifiInfo; or its super classes (declaration of 'android.net.wifi.WifiInfo' appears in /system/framework/framework.jar)
I have not found information about such an error anywhere. Everything before getWifiStandard ();
worked fine.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
您正在尝试运行包含仅在Android 11或UP上的
getWifistAndard()
方法的应用程序。尝试以下操作:
You're trying to run your app which contains the
getWifiStandard()
method that exists ONLY on Android 11 or up.Try this :
位置1:也许您只是参考函数,丢失()
错误的示例:
fun main(呼叫:() - > unit)=呼叫
正确示例:
fun main(callback:() - > unit)= callback()
坐姿2:功能是工作,需要为单位
错误的示例:
fun main(呼叫:() - > unit)=
mainscope()。启动{
打回来()
}
正确的示例:
fun main(呼叫:() - > unit){
mainscope()。启动{
打回来()
}
}
座位3:只是Google&上帝知道;))
Situtation 1: It's maybe you just reference to the function, missing ()
wrong example:
fun main(callback: () -> Unit) = callback
correct example:
fun main(callback: () -> Unit) = callback()
Situtation 2: the function is a Job, needed to be an Unit
wrong example:
fun main(callback: () -> Unit) =
MainScope().launch {
callback()
}
correct example:
fun main(callback: () -> Unit) {
MainScope().launch {
callback()
}
}
Situtation 3: just Google & God know ;))