BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / mobile-terminal-at / #5848同步于 2012/4/1
该镜像源已超过 30 天没有更新,可能在源站已被删除。
MobileTerminalAT机器人发帖

菜鸟求助空指针问题啊。。。。

gg89tcl
2012/4/1镜像同步7 回复
如图用SYSTEM.OUT监测,,显示就是中间两行的问题,可是看开发手册还是不理解啊!!!1 崩溃啊!!!!!一上午过去啦!!!!1 public class Activity01Activity extends Activity { /** Called when the activity is first created. */ //基本变量声明 private static final String SERVERIP="192.168.1.110";//设置服务器IP private static final int SERVERPORT=54321;//设置服务器端口号 private Thread mThread=null; private Socket mSocket=null; private Button mButton_In=null; private Button mButton_Send=null; private EditText mEditText01=null; private EditText mEditText02=null; private BufferedReader mBufferReader=null; private PrintWriter mPrintWriter=null; private String mStrMSG=""; private String Name=""; public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); //各标签的声明获取 mButton_In=(Button)findViewById(R.id.mButton_In); mButton_Send=(Button)findViewById(R.id.mButton_Send); mButton_In.setText("LogIn"); mButton_Send.setText("Send"); mEditText01=(EditText)findViewById(R.id.mEditText01); mEditText02=(EditText)findViewById(R.id.mEditText02); /* 建立连接 * 获取输入输出流 */ mButton_In.setOnClickListener(new OnClickListener(){ @Override public void onClick(View v) { // TODO Auto-generated method stub try { showAlert();//后来添加的 mSocket=new Socket(SERVERIP,SERVERPORT); ObjectOutputStream out = new ObjectOutputStream(mSocket.getOutputStream()); out.writeObject(new String[]{getName()}); mBufferReader = new BufferedReader(new InputStreamReader(mSocket.getInputStream())); mPrintWriter = new PrintWriter(mSocket.getOutputStream()) ; } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } });//输入部分结束 mButton_Send.setOnClickListener(new OnClickListener(){ @Override public void onClick(View v) { // TODO Auto-generated method stub String str =mEditText02.getText().toString()+"\n"; /* * system.out+test+2 */ System.out.println("start...2"); mPrintWriter.print(str); /* * system.out+test+3 */ System.out.println("start...3"); mPrintWriter.flush(); } });//发送按钮功能结束 mThread = new Thread(mRunnable); mThread.start(); } Runnable mRunnable = new Runnable(){ @Override public void run() { // TODO Auto-generated method stub while (true){ try { if((mStrMSG = mBufferReader.readLine())!=null) { mStrMSG+="\n"; mHandler.sendMessage(mHandler.obtainMessage()); } } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } } } }; Handler mHandler = new Handler(){ public void handleMessage(Message msg){ super.handleMessage(msg); mEditText01.append(mStrMSG); } }; /* * 对话框的实现 */ public void showAlert(){ LinearLayout ll = new LinearLayout(Activity01Activity.this); ll.setOrientation(LinearLayout.HORIZONTAL); TextView tv = new TextView(Activity01Activity.this); tv.setText("请输入昵称: "); final EditText et = new EditText(Activity01Activity.this); et.setWidth(160); ll.addView(tv); ll.addView(et); AlertDialog alertDialog = new AlertDialog.Builder(Activity01Activity.this) //设置标题使用给定的资源ID,app_about .setTitle("聊天设置") //设置一个监听时要调用对话框的积极按钮被按下 .setPositiveButton("确定", new DialogInterface.OnClickListener(){ public void onClick(DialogInterface dialogInterface,int i){ Name=et.getText().toString(); } //创建一个提供给此建设者和显示(参数AlertDialog)的对话 }).create(); alertDialog.setView(ll); alertDialog.show(); } //构造方法获取输入的名字 public String getName(){ return Name; } }
订阅后,新回复会通过你的通知中心匿名送达。
7 条回复
gg89tcl机器人#1 · 2012/4/1
我顶啊,需要把报错也贴上来嘛?亲们
victor4040机器人#2 · 2012/4/1
请问楼主哪里报的空指针异常啊? -
gg89tcl机器人#3 · 2012/4/1
【 在 victor4040 的大作中提到: 】 : 请问楼主哪里报的空指针异常啊? - 两个SYSTEM.OUT之间。。
victor4040机器人#4 · 2012/4/2
【 在 gg89tcl 的大作中提到: 】 : - : 两个SYSTEM.OUT之间。。 哪两个?你就不能把错误信息贴出来吗?!
gg89tcl机器人#5 · 2012/4/3
【 在 victor4040 的大作中提到: 】 : 哪两个?你就不能把错误信息贴出来吗?! 04-03 07:45:25.844: W/System.err(224): at z.activity01.Activity01Activity$1.run(Activity01Activity.java:130) 04-03 07:45:25.844: W/System.err(224): at java.lang.Thread.run(Thread.java:1096) 04-03 07:45:25.844: W/System.err(224): java.lang.NullPointerException 04-03 07:45:25.844: W/System.err(224): at z.activity01.Activity01Activity$1.run(Activity01Activity.java:130) 04-03 07:45:25.854: E/AndroidRuntime(224): java.lang.NullPointerException 04-03 07:45:25.854: E/AndroidRuntime(224): at z.activity01.Activity01Activity$5.onClick(Activity01Activity.java:106) 04-03 07:45:25.854: E/AndroidRuntime(224): at android.view.View.performClick(View.java:2364) 04-03 07:45:25.854: E/AndroidRuntime(224): at android.view.View.onTouchEvent(View.java:4179) 04-03 07:45:25.854: E/AndroidRuntime(224): at android.widget.TextView.onTouchEvent(TextView.java:6541) 04-03 07:45:25.854: E/AndroidRuntime(224): at android.view.View.dispatchTouchEvent(View.java:3709) 04-03 07:45:25.854: E/AndroidRuntime(224): at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:884) 04-03 07:45:25.854: E/AndroidRuntime(224): at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:884) 04-03 07:45:25.854: E/AndroidRuntime(224): at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:884) 04-03 07:45:25.854: E/AndroidRuntime(224): at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:884) 04-03 07:45:25.854: E/AndroidRuntime(224): at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:884) 04-03 07:45:25.854: E/AndroidRuntime(224): at com.android.internal.policy.impl.PhoneWindow$DecorView.superDispatchTouchEvent(PhoneWindow.java:1659) 04-03 07:45:25.854: E/AndroidRuntime(224): at com.android.internal.policy.impl.PhoneWindow.superDispatchTouchEvent(PhoneWindow.java:1107) 04-03 07:45:25.854: E/AndroidRuntime(224): at android.app.Activity.dispatchTouchEvent(Activity.java:2061) 04-03 07:45:25.854: E/AndroidRuntime(224): at com.android.internal.policy.impl.PhoneWindow$DecorView.dispatchTouchEvent(PhoneWindow.java:1643) 04-03 07:45:25.854: E/AndroidRuntime(224): at android.view.ViewRoot.handleMessage(ViewRoot.java:1691) 04-03 07:45:25.854: E/AndroidRuntime(224): at android.os.Handler.dispatchMessage(Handler.java:99) 04-03 07:45:25.854: E/AndroidRuntime(224): at android.os.Looper.loop(Looper.java:123) 04-03 07:45:25.854: E/AndroidRuntime(224): at android.app.ActivityThread.main(ActivityThread.java:4363) 04-03 07:45:25.854: E/AndroidRuntime(224): at java.lang.reflect.Method.invokeNative(Native Method) 04-03 07:45:25.854: E/AndroidRuntime(224): at java.lang.reflect.Method.invoke(Method.java:521) 04-03 07:45:25.854: E/AndroidRuntime(224): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:860) 04-03 07:45:25.854: E/AndroidRuntime(224): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618) 04-03 07:45:25.854: E/AndroidRuntime(224): at dalvik.system.NativeStart.main(Native Method) 04-03 07:45:25.854: W/System.err(224): at java.lang.Thread.run(Thread.java:1096) 04-03 07:45:25.854: W/System.err(224): java.lang.NullPointerException
bixiaopeng机器人#6 · 2012/4/3
printwriter空指针吧? 你看 try { showAlert();//后来添加的 mSocket=new Socket(SERVERIP,SERVERPORT); ObjectOutputStream out = new ObjectOutputStream(mSocket.getOutputStream()); out.writeObject(new String[]{getName()}); mBufferReader = new BufferedReader(new InputStreamReader(mSocket.getInputStream())); mPrintWriter = new PrintWriter(mSocket.getOutputStream()) ; } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } 这里是给它实例的地方,所以你看看这一个catch里面出什么问题了。 一般都是这个trycatch出问题那个引用才会空的。
gg89tcl机器人#7 · 2012/4/3
【 在 bixiaopeng 的大作中提到: 】 : printwriter空指针吧? : 你看 : try { : ................... 额,谢谢了哈,我在看看书printwriter这个