public class DeviceControlActivity extends Activity
위의 class 내의 함수에서 (onCreate에서 실행 X)
public class Main_SMS extends Activity
에 있는 함수를 호출하려고 하는데 에러가 납니다.
Main_SMS 내에서
public static Context mContext;
mContext = this;
선언을 해주고
DeviceControlActivity 내에서
((Main_SMS)Main_SMS.mContext).sendSMS();
((Main_SMS) mContext).sendSMS();
두 경우 위와 같이 설정을 하였는데 에러가 났습니다.
sendSMS()는 아래와 같습니다.
사실 sendSMS내의 내용은 버튼이벤트가 발생하였을때 실행되는 내용인데
버튼함수의 경우 함수 인자로 View v 로 보내게 되어있어 DeviceControlActivity 내에서 실행시킬 방법을 찾지못하여 인자가 없는 함수를 새로 만들었습니다.
public void sendSMS(){
String smsNum = smsNumber.getText().toString();
String smsText = smsTextContext.getText().toString();
if (smsNum.length()>0 && smsText.length()>0){
sendSMS(smsNum, smsText);
}else{
Toast.makeText(this, "모두 입력해 주세요", Toast.LENGTH_SHORT).show();
}
}
sendSMS()함수 내에서 실행하는 sendSMS(smsNum,smsText)는 Main_SMS 내에서 설정되어 있습니다.
위 함수 실행시 에러코드입니다
E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.example.android.bluetoothlegatt, PID: 14407
java.lang.RuntimeException: Error receiving broadcast Intent { act=com.example.bluetooth.le.ACTION_DATA_AVAILABLE flg=0x10 (has extras) } in com.example.android.bluetoothlegatt.DeviceControlActivity$2@1acc0636
at android.app.LoadedApk$ReceiverDispatcher$Args.run(LoadedApk.java:933)
at android.os.Handler.handleCallback(Handler.java:739)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:145)
at android.app.ActivityThread.main(ActivityThread.java:5951)
at java.lang.reflect.Method.invoke(Native Method)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1399)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1194)
Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'void com.example.android.bluetoothlegatt.Main_SMS.sendSMS()' on a null object reference
at com.example.android.bluetoothlegatt.DeviceControlActivity$2.onReceive(DeviceControlActivity.java:134)
at android.app.LoadedApk$ReceiverDispatcher$Args.run(LoadedApk.java:923)
at android.os.Handler.handleCallback(Handler.java:739)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:145)
at android.app.ActivityThread.main(ActivityThread.java:5951)
at java.lang.reflect.Method.invoke(Native Method)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1399)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1194)