2014-02-15 64 views
2

为什么在尝试实现将字符串邮件从一个活动发送到扩展Service的BluetoothService活动的代码时,会出现NullPointerException错误。尝试将邮件从一个活动发送到另一个活动时出现空指针异常

这里是参与发送串代码的主要部分:

private BluetoothService mChatService = null; 

public void onCaptureButtonClicked(View view) throws IOException{         
      try{ 
        sendMessage("1"); 
       }catch(NullPointerException e){ 
        e.printStackTrace(); 
       } 

      takePhoto(1); 
     } 
     } 

private void sendMessage(String message) { 

      if (mChatService.getState() != BluetoothService.STATE_CONNECTED) { 
      return; 
     } 

     if (message.length() > 0) { 
      byte[] send = message.getBytes(); 
      mChatService.write(send); 
     } 
    } 

以下是错误的logcat:

02-15 18:21:19.960: W/System.err(1252): java.lang.NullPointerException 
02-15 18:21:19.960: W/System.err(1252):  at com.example.application.parss.CameraActivity.sendMessage(CameraActivity.java:751) 
02-15 18:21:19.960: W/System.err(1252):  at com.example.application.parss.CameraActivity.onCaptureButtonClicked(CameraActivity.java:245) 
02-15 18:21:19.960: W/System.err(1252):  at java.lang.reflect.Method.invokeNative(Native Method) 
02-15 18:21:19.960: W/System.err(1252):  at java.lang.reflect.Method.invoke(Method.java:507) 
02-15 18:21:19.960: W/System.err(1252):  at android.view.View$1.onClick(View.java:2180) 
02-15 18:21:19.960: W/System.err(1252):  at android.view.View.performClick(View.java:2585) 
02-15 18:21:19.960: W/System.err(1252):  at android.view.View$PerformClick.run(View.java:9299) 
02-15 18:21:19.960: W/System.err(1252):  at android.os.Handler.handleCallback(Handler.java:587) 
02-15 18:21:19.960: W/System.err(1252):  at android.os.Handler.dispatchMessage(Handler.java:92) 
02-15 18:21:19.960: W/System.err(1252):  at android.os.Looper.loop(Looper.java:130) 
02-15 18:21:19.960: W/System.err(1252):  at android.app.ActivityThread.main(ActivityThread.java:3691) 
02-15 18:21:19.960: W/System.err(1252):  at java.lang.reflect.Method.invokeNative(Native Method) 
02-15 18:21:19.970: W/System.err(1252):  at java.lang.reflect.Method.invoke(Method.java:507) 
02-15 18:21:19.970: W/System.err(1252):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:912) 
02-15 18:21:19.970: W/System.err(1252):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:670) 
02-15 18:21:19.970: W/System.err(1252):  at dalvik.system.NativeStart.main(Native Method) 

编辑:

我intialised的mChatSession这样:

mChatService = new BluetoothService(this, mHandler); 

并称为: mChatService.write(send);

但类似的NullPointerException错误仍然存​​在。

+0

活动如何扩展服务? –

+0

对不起,我的意思是扩展Service的类。 – shannon

+0

这是代码中的751号码行吗? –

回答

0

我想你会得到例外,因为你还没有初始化BluetoothService

private BluetoothService mChatService = null; 

,你在你的sendMessage()方法使用mChatService.getState()没有初始化。

+0

I intialised BluetoothService,但同样的错误仍然存​​在于mChatService.write(); – shannon

0

尝试

 if(mChatService == null) 
     return; 
    if (message.length() > 0 && mChatService.getState() == BluetoothService.STATE_CONNECTED) { 
     byte[] send = message.getBytes(); 
     mChatService.write(send); 
    } 
0
BluetoothService mChatService = new BluetoothService(args); 

您需要在某一时刻的变量分配一个实例。

相关问题