Java Android-线程之间的问题(NullPointerException)

Java Android-线程之间的问题(NullPointerException),java,android,networking,Java,Android,Networking,我已经写了一个Android应用程序,它可以检查到谷歌的互联网连接(我猜是通过一个套接字)!当我从我的网络线程(检查方法)得到答案时,我尝试用setText更新我的textview,但我得到了一个nullpointerexception!在我的代码中,这可能是一个非常简单的bug,但我就是不明白 以下是我的主要活动: package at.springsits.michi.hostchecker; import android.os.Bundle; import android.app.Act

我已经写了一个Android应用程序,它可以检查到谷歌的互联网连接(我猜是通过一个套接字)!当我从我的网络线程(检查方法)得到答案时,我尝试用setText更新我的textview,但我得到了一个nullpointerexception!在我的代码中,这可能是一个非常简单的bug,但我就是不明白

以下是我的主要活动:

package at.springsits.michi.hostchecker;

import android.os.Bundle;
import android.app.Activity;
import android.util.Log;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.TextView;

public class Main extends Activity implements OnClickListener {

    TextView connection_internet;
    Button pingbutton;
    Networking net;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        connection_internet = (TextView) findViewById(R.id.connection);
        pingbutton = (Button) findViewById(R.id.ping_button);
        pingbutton.setOnClickListener(this);
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        getMenuInflater().inflate(R.menu.main, menu);
        return true;
    }

    @Override
    public void onClick(View v) {
        new Thread(new Runnable() {
            public void run() {
            `enter code here`net.connectionToGoogle = Networking.testPingToGoogle();
                runOnUiThread(new Runnable() {
                    public void run() {
                        connection_internet.setText(String
                                .valueOf(net.connectionToGoogle));
                    }
                });
            }
        }).start();

    }

}
日志:

06-26 16:38:00.030: D/libEGL(2756): loaded /system/lib/egl/libEGL_adreno200.so
06-26 16:38:00.030: D/libEGL(2756): loaded /system/lib/egl/libGLESv1_CM_adreno200.so
06-26 16:38:00.030: D/libEGL(2756): loaded /system/lib/egl/libGLESv2_adreno200.so
06-26 16:38:00.030: I/Adreno200-EGL(2756): <eglInitialize:269>: EGL 1.4 QUALCOMM build: Nondeterministic AU_full_mako_PARTNER-ANDROID/JB-MR1-DEV_CL2961380_release_AU (CL2961380)
06-26 16:38:00.030: I/Adreno200-EGL(2756): Build Date: 12/10/12 Mon
06-26 16:38:00.030: I/Adreno200-EGL(2756): Local Branch: 
06-26 16:38:00.030: I/Adreno200-EGL(2756): Remote Branch: m/partner-android/jb-mr1-dev
06-26 16:38:00.030: I/Adreno200-EGL(2756): Local Patches: NONE
06-26 16:38:00.030: I/Adreno200-EGL(2756): Reconstruct Branch: NOTHING
06-26 16:38:00.070: D/OpenGLRenderer(2756): Enabling debug mode 0
06-26 16:38:03.414: W/dalvikvm(2756): threadid=11: thread exiting with uncaught exception (group=0x40bf9930)
06-26 16:38:03.414: E/AndroidRuntime(2756): FATAL EXCEPTION: Thread-6549
06-26 16:38:03.414: E/AndroidRuntime(2756): java.lang.NullPointerException
06-26 16:38:03.414: E/AndroidRuntime(2756):     at at.springsits.michi.hostchecker.Main$1.run(Main.java:37)
06-26 16:38:03.414: E/AndroidRuntime(2756):     at java.lang.Thread.run(Thread.java:856)
06-26 16:38:00.030:D/libEGL(2756):loaded/system/lib/egl/libEGL_adreno200.so
06-26 16:38:00.030:D/libEGL(2756):loaded/system/lib/egl/libGLESv1_CM_adreno200.so
06-26 16:38:00.030:D/libEGL(2756):loaded/system/lib/egl/libGLESv2_adreno200.so
06-26 16:38:00.030:I/Adreno200 EGL(2756)::EGL 1.4高通公司构建:不确定的AU_full_mako_PARTNER-ANDROID/JB-MR1-DEV_CL2961380_release_AU(CL2961380)
06-26 16:38:00.030:I/Adreno200 EGL(2756):建造日期:12/10/12周一
06-26 16:38:00.030:I/Adreno200 EGL(2756):当地分行:
06-26 16:38:00.030:I/Adreno200 EGL(2756):远程分支:m/partner android/jb-mr1-dev
06-26 16:38:00.030:I/Adreno200 EGL(2756):局部贴片:无
06-26 16:38:00.030:I/Adreno200 EGL(2756):重建分支:无
06-26 16:38:00.070:D/OpenGLRenderer(2756):启用调试模式0
06-26 16:38:03.414:W/dalvikvm(2756):threadid=11:线程退出时出现未捕获异常(组=0x40bf9930)
06-26 16:38:03.414:E/AndroidRuntime(2756):致命异常:线程6549
06-26 16:38:03.414:E/AndroidRuntime(2756):java.lang.NullPointerException
06-26 16:38:03.414:E/AndroidRuntime(2756):at.springsits.michi.hostchecker.Main$1.run(Main.java:37)
06-26 16:38:03.414:E/AndroidRuntime(2756):在java.lang.Thread.run(Thread.java:856)处

net
为空。您正在尝试在实例化它之前访问它的一个字段

你在这里申报:

Networking net 
然后尝试在
onClick()中访问它

但是在这个阶段,
net
null
。在尝试使用它之前,请先在
onCreate()
或类似文件中实例化它:

net = new Networking();

张贴日志以便我们知道什么是空的,我想
Networking net
然后
net.connectionToGoogle=Networking.testPingToGoogle()
。我想我需要一个Networking net=new Networking()。是的,这是你自己的课吗?无论如何,我已经发布了一个答案。是的,是的。我真不敢相信,我太笨了,竟然看不到!
net = new Networking();