如何解决android中的NullPointerException和ThreadException错误

如何解决android中的NullPointerException和ThreadException错误,android,multithreading,nullpointerexception,thread-exceptions,Android,Multithreading,Nullpointerexception,Thread Exceptions,我在我的代码中得到了一个NullPointerException错误,我已经把它缩小到导致异常的这段代码中。有人能帮忙吗 url = new URL(Http.toString()); 您正在从线程更新UI。因此错误发生了。若要从线程更新ui,请使用处理程序。请尝试SO线程以获取更多信息尝试以下操作: runOnUiThread(new Runnable() { @Override public void ru

我在我的代码中得到了一个NullPointerException错误,我已经把它缩小到导致异常的这段代码中。有人能帮忙吗

url = new URL(Http.toString());


您正在从线程更新UI。因此错误发生了。若要从线程更新ui,请使用处理程序。请尝试SO线程以获取更多信息

尝试以下操作:

runOnUiThread(new Runnable() {

                    @Override
                    public void run() {
                        // TODO Auto-generated method stub
                        url = new URL(Http.toString());
                        tvspottempp2 = (TextView)findViewById(R.id.tvspottempp2);
                        tvspottempp2.setText("url:"+url);

                        Document doc;                   
                        doc = Jsoup.parse(url, 3000);
                        tvspottempp2 = (TextView)findViewById(R.id.tvspottempp3);
                        tvspottempp2.setText("doc:"+doc);
                    }
                });
有关使用ui线程的更多信息,请参考。

您正在线程上更新ui(TextView settext),这就是获取错误的原因

                      // ui stuff updating that's why showing error
                      tvspottempp2 = (TextView)findViewById(R.id.tvspottempp2);
                      tvspottempp2.setText("url:"+url);

第二个问题是因为您正在从线程更新ui,可以使用“runOnUiThread”?是的,但最好使用asynctask04-24 12:25:31.231:W/System.err(9995):java.lang.NullPointerException 04-24 12:25:31.236:W/System.err(9995):在com.example.rsbuyclient.User\u菜单$1$2.运行(User\u menu.java:138)04-24 12:25:31.236:W/System.err(9995):在android.app.Activity.runOnUiThread(Activity.java:4893)04-24 12:25:31.236:W/System.err(9995):在android.view.view.performClick(view.java:4475)04-24 12:25:31.236:W/System.err(9995):在android.view.view.view$performClick.run(view.java:18786)04-24 12:25:31.236:W/System.err(9995):在android.os.Handler.handleCallback(Handler.java:730)04-24 12:25:31.236:W/System.err(9995):位于android.os.Handler.dispatchMessage(Handler.java:92)
    04-24 12:25:31.231: W/System.err(9995): java.lang.NullPointerException
04-24 12:25:31.236: W/System.err(9995):     at com.example.rsbuyclient.User_menu$1$2.run(User_menu.java:138)
04-24 12:25:31.236: W/System.err(9995):     at android.app.Activity.runOnUiThread(Activity.java:4893)
04-24 12:25:31.236: W/System.err(9995):     at com.example.rsbuyclient.User_menu$1.onClick(User_menu.java:135)
04-24 12:25:31.236: W/System.err(9995):     at android.view.View.performClick(View.java:4475)
04-24 12:25:31.236: W/System.err(9995):     at android.view.View$PerformClick.run(View.java:18786)
04-24 12:25:31.236: W/System.err(9995):     at android.os.Handler.handleCallback(Handler.java:730)
04-24 12:25:31.236: W/System.err(9995):     at android.os.Handler.dispatchMessage(Handler.java:92)
04-24 12:25:31.236: W/System.err(9995):     at android.os.Looper.loop(Looper.java:137)
04-24 12:25:31.236: W/System.err(9995):     at android.app.ActivityThread.main(ActivityThread.java:5419)
04-24 12:25:31.236: W/System.err(9995):     at java.lang.reflect.Method.invokeNative(Native Method)
04-24 12:25:31.236: W/System.err(9995):     at java.lang.reflect.Method.invoke(Method.java:525)
04-24 12:25:31.236: W/System.err(9995):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1187)
04-24 12:25:31.236: W/System.err(9995):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1003)
04-24 12:25:31.236: W/System.err(9995):     at dalvik.system.NativeStart.main(Native Method)
04-24 12:25:36.256: W/Choreographer(9995): Already have a pending vsync event.  There should only be one at a time.
runOnUiThread(new Runnable() {

                    @Override
                    public void run() {
                        // TODO Auto-generated method stub
                        url = new URL(Http.toString());
                        tvspottempp2 = (TextView)findViewById(R.id.tvspottempp2);
                        tvspottempp2.setText("url:"+url);

                        Document doc;                   
                        doc = Jsoup.parse(url, 3000);
                        tvspottempp2 = (TextView)findViewById(R.id.tvspottempp3);
                        tvspottempp2.setText("doc:"+doc);
                    }
                });
                      // ui stuff updating that's why showing error
                      tvspottempp2 = (TextView)findViewById(R.id.tvspottempp2);
                      tvspottempp2.setText("url:"+url);