我收到的NullPointerException
代码如下。有谁知道可能导致这种情况的原因?
public void clickMe(View v) //the view is button
{
ConnectivityManager conMgr = (ConnectivityManager)getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo networkInfo = conMgr.getActiveNetworkInfo();
String b;
if(networkInfo.isConnected())
b="on";
else
b="off";
Toast.makeText(MainActivity.this, b , Toast.LENGTH_SHORT).show();
}
答案 0 :(得分:2)
根据getActiveNetworkInfo()
的文件:
返回有关当前活动数据网络的详细信息。连接时,此网络是传出连接的默认路由。在启动网络流量之前,您应该始终检查
isConnected()
。当没有网络可用时,这可能会返回null
。
因此,您没有任何有效网络,请检查null
是否如此:
if(networkInfo != null && networkInfo.isConnected())
答案 1 :(得分:2)
查看https://developer.android.com/reference/android/net/ConnectivityManager.html#getActiveNetworkInfo()
此方法要求调用者持有权限ACCESS_NETWORK_STATE。
如果还没有,您需要将此权限添加到您的应用中。如果不这样做,您可能会得不到任何结果,并且意外地得到一个空结果。
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
确保已在清单中添加。