如何解决android中的NullPointerException和ThreadException错误
我在我的代码中得到了一个NullPointerException错误,我已经把它缩小到导致异常的这段代码中。有人能帮忙吗如何解决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
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);