こんにちは、arduino と通信するために BluetoothChat の例を使用しています。これまでのところすべてが機能しており、メインクラスからではなく、作成した別のクラスからデータを送信できるようにするために、sendMessage() メソッドにアクセスしたいと考えています。BluetoothChat.java の BluetoothChat send 関数は次のとおりです。
private void sendMessage(String message) {
// Check that we're actually connected before trying anything
if (mChatService.getState() != BluetoothChatService.STATE_CONNECTED) {
Toast.makeText(this, R.string.not_connected, Toast.LENGTH_SHORT).show();
return;
}
// Check that there's actually something to send
if (message.length() > 0) {
// Get the message bytes and tell the BluetoothChatService to write
byte[] send = message.getBytes();
mChatService.write(send);
// Reset out string buffer to zero and clear the edit text field
mOutStringBuffer.setLength(0);
mOutEditText.setText(mOutStringBuffer);
}
}
今、私は自分の Config.java からアクセスしたいと思っています。これが私がこれまでに行ったことです。private void sendMessage を public に変更し、Config.java ive にこれらを追加しました。
BluetoothChat firstClass = new BluetoothChat();
そしてonCreateでこれ
firstClass.sendMessage("test");
Config.javaアクティビティに切り替えてもエラーは発生しませんが、アプリがクラッシュします..
誰か助けてもらえますか? ありがとう!
ログキャット
10-08 22:49:15.125: D/dalvikvm(1541): GC_EXTERNAL_ALLOC 解放された 98K、47% の空き 2962K/5511K、外部 3943K/4883K、一時停止 23ms 10-08 22:49:15.128: D/BluetoothSocket(1541):すでに閉じている状態のソケット:android.bluetooth.BluetoothSocket@40535c88 10-08 22:49:15.128: D/BluetoothSocket(1541): すでに閉じている状態のソケット:android.bluetooth.BluetoothSocket@40523b10 10-08 22:49:15.296 : E/BluetoothChat(1541): -- ON STOP -- 10-08 22:49:20.585: D/AndroidRuntime(1541): VM をシャットダウンしています 10-08 22:49:20.585: W/dalvikvm(1541): threadid =1: キャッチされない例外で終了するスレッド (group=0x40015578) 10-08 22:49:20.589: E/AndroidRuntime(1541): FATAL EXCEPTION: main 10-08 22:49:20.589: E/AndroidRuntime(1541): java .lang.NullPointerException 10-08 22:49:20.589: E/AndroidRuntime(1541): com.example.android.BluetoothChat.BluetoothChat で。sendMessage(BluetoothChat.java:218) 10-08 22:49:20.589: E/AndroidRuntime(1541): com.example.android.BluetoothChat.Config.onItemSelected(Config.java:45) 10-08 22:49: 20.589: E/AndroidRuntime(1541): android.widget.AdapterView.fireOnSelected(AdapterView.java:871) 10-08 22:49:20.589: E/AndroidRuntime(1541): android.widget.AdapterView.access$200( AdapterView.java:42) 10-08 22:49:20.589: E/AndroidRuntime(1541): android.widget.AdapterView$SelectionNotifier.run(AdapterView.java:837) 10-08 22:49:20.589: E/ AndroidRuntime(1541): android.os.Handler.handleCallback(Handler.java:587) 10-08 22:49:20.589: E/AndroidRuntime(1541): android.os.Handler.dispatchMessage(Handler.java:92) ) 10-08 22:49:20.589: E/AndroidRuntime(1541): android.os.Looper.loop(Looper.java:130) 10-08 22:49:20.589:E/AndroidRuntime(1541): android.app.ActivityThread.main(ActivityThread.java:3687) 10-08 22:49:20.589: E/AndroidRuntime(1541): java.lang.reflect.Method.invokeNative(Native)メソッド) 10-08 22:49:20.589: E/AndroidRuntime(1541): java.lang.reflect.Method.invoke(Method.java:507) 10-08 22:49:20.589: E/AndroidRuntime(1541) : com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:842) 10-08 22:49:20.589: E/AndroidRuntime(1541): com.android.internal.os.ZygoteInit.main で(ZygoteInit.java:600) 10-08 22:49:20.589: E/AndroidRuntime(1541): dalvik.system.NativeStart.main(ネイティブ メソッド) でE/AndroidRuntime(1541): java.lang.reflect.Method.invoke(Method.java:507) 10-08 22:49:20.589: E/AndroidRuntime(1541): com.android.internal.os.ZygoteInit で$MethodAndArgsCaller.run(ZygoteInit.java:842) 10-08 22:49:20.589: E/AndroidRuntime(1541): com.android.internal.os.ZygoteInit.main(ZygoteInit.java:600) 10-08 22 :49:20.589: E/AndroidRuntime(1541): dalvik.system.NativeStart.main(ネイティブメソッド)E/AndroidRuntime(1541): java.lang.reflect.Method.invoke(Method.java:507) 10-08 22:49:20.589: E/AndroidRuntime(1541): com.android.internal.os.ZygoteInit で$MethodAndArgsCaller.run(ZygoteInit.java:842) 10-08 22:49:20.589: E/AndroidRuntime(1541): com.android.internal.os.ZygoteInit.main(ZygoteInit.java:600) 10-08 22 :49:20.589: E/AndroidRuntime(1541): dalvik.system.NativeStart.main(ネイティブメソッド)