1

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();
    }
4

2 に答える 2

2

https://developer.android.com/reference/android/net/ConnectivityManager.html#getActiveNetworkInfo()をご覧ください

このメソッドでは、呼び出し元がアクセス許可 ACCESS_NETWORK_STATE を保持する必要があります。

この権限をアプリに追加していない場合は、追加する必要があります。そうしないと、結果が得られず、予期せず null の結果が得られる可能性があります。

<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />

マニフェストに追加されていることを確認してください。

于 2013-02-19T17:47:37.493 に答える
2

getActiveNetworkInfo()のドキュメントによると:

現在アクティブなデータ ネットワークに関する詳細を返します。接続すると、このネットワークが発信接続のデフォルト ルートになります。isConnected()ネットワーク トラフィックを開始する前に、常に確認する必要があります。nullこれは、ネットワークが利用できない場合に返されることがあります。

アクティブなネットワークがない場合は、次のnullようになっているかどうかを確認してください。

if(networkInfo != null && networkInfo.isConnected())
于 2013-02-19T17:44:39.327 に答える