我有这段代码:
List<ScanResult> vAll = null;
WifiManager vMainWifi = null;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_wi_fi);
vMainWifi = (WifiManager) this.getSystemService(Context.WIFI_SERVICE);
vAll = getWiFi();
}
public void btnViewWiFI_onClick(View v) {
TextView vTmpTextView = (TextView) findViewById(R.id.tvRetele);
String vString = "WiFi:";
List<String> vLista = getWiFiString();
if (vLista != null) {
for (int i = 0; i < vLista.size(); i++)
vString += "\n\t" + vLista.get(i);
}
vTmpTextView.setText(vString);
}
List<ScanResult> getWiFi() {
if (vAll != null)
return vAll;
if (vMainWifi.isWifiEnabled())
return vMainWifi.getScanResults();
else {
vMainWifi.setWifiEnabled(true);
return vMainWifi.getScanResults();
}
}
List<String> getWiFiString() {
List<String> vTmp = null;
if (vAll == null)
vAll = getWiFi();
if (vAll != null) {
for (int i = 0; i < vAll.size(); i++)
vTmp.add(vAll.get(i).BSSID + ", " + vAll.get(i).SSID);
}
return vTmp;
}
布局xml
<TextView
android:id="@+id/tvRetele"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="94dp" />
<Button
android:id="@+id/btnViewWiFI"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:layout_marginLeft="145dp"
android:layout_marginTop="233dp"
android:onClick="btnViewWiFI_onClick"
android:text="@string/viewWiFi" />
在Manifest文件中我有这个
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
如果我尝试调试这个我得到空列表,可能因为我得到WiFi网络的错误,但当我上传到手机并安装这个应用程序时,我按下按钮时会崩溃。 我做错了什么?
答案 0 :(得分:1)
您没有在getWiFiString()中实例化列表vTmp!尝试向其中添加元素时会出现NullPointerException。
您可能需要的是:
List<String> vTmp = new ArrayList<String>();
答案 1 :(得分:0)
阅读您的日志文件。找到致命的地方。找到包含您的包名称的行。它可能会说空指针异常。转到该行并确保该项具有值且不为空。在崩溃线之前设置断点并检查所有内容的值。这个答案不仅可以解决这个问题,还可以解决更多问题。
如果你没有看到logcat goto eclipse - &gt;窗口 - &gt;显示视图 - &gt; logcat的