센서 데이터 값을 받아서 분배 할려고 substring을 사용하였는데 런에서 에러 문구가 떠서 문의드립니다.
mHandler = new Handler(){
public void handleMessage(Message msg){
if(msg.what == MESSAGE_READ){
String readMessage = null;
Bundle bundle = msg.getData();
String str0 = bundle.getString("");
String str1 = str0.substring(0, 5);
String str2 = str0.substring(6, 11);
String str3 = str0.substring(12, 17);
mRead_X.setText(str1.concat(" "));
mRead_Y.setText(str2.concat(" "));
mRead_Z.setText(str3.concat(" "));
try {
readMessage = new String((byte[]) msg.obj, "UTF-8");
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
mReadBuffer.setText(readMessage);
}
코드는 이렇게 작성하였고
E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.mcuhq.simplebluetooth, PID: 13890
java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.String java.lang.String.substring(int, int)' on a null object reference
at com.mcuhq.simplebluetooth.MainActivity$1.handleMessage(MainActivity.java:95)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:148)
at android.app.ActivityThread.main(ActivityThread.java:7406)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1230)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1120)
런에서는 이렇게 떳는데 str1에 문제가 있다고하는데 무슨 문제인지 모르겠습니다.