我在尝试检查Internet连接时遇到java.lang.NullPointerException?

我在尝试检查Internet连接时遇到java.lang.NullPointerException?,java,android,android-studio,Java,Android,Android Studio,这就是我得到的错误 03-25 12:11:15.019 21907-21907/np.com.tester.wlms E/AndroidRuntime﹕ FATAL EXCEPTION: main Process: np.com.tester.wlms, PID: 21907 java.lang.RuntimeException: Unable to start activity ComponentInfo{np.com.tester.wlms/np.com.

这就是我得到的错误

03-25 12:11:15.019  21907-21907/np.com.tester.wlms E/AndroidRuntime﹕ FATAL EXCEPTION: main
        Process: np.com.tester.wlms, PID: 21907
        java.lang.RuntimeException: Unable to start activity ComponentInfo{np.com.tester.wlms/np.com.tester.wlms.MainActivity}: java.lang.NullPointerException
                at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2237)
                at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2286)
                at android.app.ActivityThread.access$800(ActivityThread.java:144)
                at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1246)
                at android.os.Handler.dispatchMessage(Handler.java:102)
                at android.os.Looper.loop(Looper.java:212)
                at android.app.ActivityThread.main(ActivityThread.java:5137)
                at java.lang.reflect.Method.invokeNative(Native Method)
                at java.lang.reflect.Method.invoke(Method.java:515)
                at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:902)
                at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:718)
                at dalvik.system.NativeStart.main(Native Method)
         Caused by: java.lang.NullPointerException
                at np.com.tester.wlms.MainActivity.onCreate(MainActivity.java:15)
                at android.app.Activity.performCreate(Activity.java:5231)
                at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087)
                at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2201)
                at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2286)
                at android.app.ActivityThread.access$800(ActivityThread.java:144)
                at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1246)
                at android.os.Handler.dispatchMessage(Handler.java:102)
                at android.os.Looper.loop(Looper.java:212)
                at android.app.ActivityThread.main(ActivityThread.java:5137)
                at java.lang.reflect.Method.invokeNative(Native Method)
                at java.lang.reflect.Method.invoke(Method.java:515)
                at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:902)
                at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:718)
                at dalvik.system.NativeStart.main(Native Method)
这是我的internetConnectionCheck.java

import android.content.Context;
import android.net.ConnectivityManager;
import android.net.NetworkInfo;
import android.support.v7.app.ActionBarActivity;


public class InternetConnectionCheck extends ActionBarActivity{
    public boolean isInternetOn()   //checking internet for connection
    {
        ConnectivityManager con = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
        NetworkInfo networkInfo = con.getActiveNetworkInfo();
        // ARE WE CONNECTED TO THE NET
        if (networkInfo != null) {
            // MESSAGE TO SCREEN FOR TESTING (IF REQ)
            //Toast.makeText(this, connectionType + ” connected”, Toast.LENGTH_SHORT).show();
            return true;
        } else {
            return false;
        }

    }
}
这是MainActivity.java

import android.os.Bundle;
import android.support.v7.app.ActionBarActivity;
import android.widget.Toast;


public class MainActivity extends ActionBarActivity {
     private InternetConnectionCheck internetConnectionCheck;
     private  String internetCheck;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        internetCheck=String.valueOf(internetConnectionCheck.isInternetOn());

         Toast.makeText(this,internetCheck, Toast.LENGTH_SHORT);

    }



}

您必须创建
InternetConnectionCheck
的实例

否则,
isInternetOn
必须是静态方法

public statis boolean isInternetOn()
{

}

问题是InternetConnectionCheck并没有初始化,这就是为什么会出现null异常

试试这个

internetConnectionCheck.java

import android.content.Context;
import android.net.ConnectivityManager;
import android.net.NetworkInfo;
import android.support.v7.app.ActionBarActivity;


public class InternetConnectionCheck extends ActionBarActivity{
    public static  boolean isInternetOn()   //checking internet for connection
    {
        ConnectivityManager con = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
        NetworkInfo networkInfo = con.getActiveNetworkInfo();
        // ARE WE CONNECTED TO THE NET
        if (networkInfo != null) {
            // MESSAGE TO SCREEN FOR TESTING (IF REQ)
            //Toast.makeText(this, connectionType + ” connected”, Toast.LENGTH_SHORT).show();
            return true;
        } else {
            return false;
        }
 }
 }
MainActivity.java

import android.os.Bundle;
import android.support.v7.app.ActionBarActivity;
import android.widget.Toast;


public class MainActivity extends ActionBarActivity {
     private InternetConnectionCheck internetConnectionCheck;
     private  String internetCheck;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        internetCheck=String.valueOf(InternetConnectionCheck.isInternetOn());

         Toast.makeText(this,internetCheck, Toast.LENGTH_SHORT);

    }



}
问题在于:

 private InternetConnectionCheck internetConnectionCheck;
关于这里的电话

internetConnectionCheck.isInternetOn()
InternetConnectionCheck
是您的对象,您可以为它定义变量名
InternetConnectionCheck
。但是你从来没有用什么东西初始化过对象。因此它只是空的。只要调用方法
.isInternetOn()
,您将始终收到
NullPointerException
。如果要修复此问题,需要创建对象的实例

private InternetConnectionCheck internetConnectionCheck = new InternetConnectionCheck();

非常感谢您的快速回复,解决方案有效:)
private InternetConnectionCheck internetConnectionCheck = new InternetConnectionCheck();