Исключение: «Ошибка доставки результата ResultInfo» при подключении по Bluetooth? - PullRequest
0 голосов
/ 11 июня 2019

Я пытаюсь написать приложение для Android, которое использует Bluetooth для связи с платой разработки.Я использую библиотеку BluetoothSPP .Я сделал простое тестовое приложение, чтобы посмотреть, сработает ли библиотека - и это сработало!Но теперь я пытаюсь включить его в более сложное приложение и получаю следующее исключение:

06-11 09:24:09.216 18683-18683/com.ritchie.irldevapp W/dalvikvm: threadid=1: thread exiting with uncaught exception (group=0x4122d438)
06-11 09:24:09.236 18683-18683/com.ritchie.irldevapp E/AndroidRuntime: FATAL EXCEPTION: main
    java.lang.RuntimeException: Failure delivering result ResultInfo{who=null, request=384, result=-1, data=Intent { (has extras) }} to activity {com.ritchie.irldevapp/com.ritchie.irldevapp.MainActivity}: java.lang.NullPointerException
        at android.app.ActivityThread.deliverResults(ActivityThread.java:3215)
        at android.app.ActivityThread.handleSendResult(ActivityThread.java:3258)
        at android.app.ActivityThread.access$1100(ActivityThread.java:138)
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1252)
        at android.os.Handler.dispatchMessage(Handler.java:99)
        at android.os.Looper.loop(Looper.java:137)
        at android.app.ActivityThread.main(ActivityThread.java:4921)
        at java.lang.reflect.Method.invokeNative(Native Method)
        at java.lang.reflect.Method.invoke(Method.java:511)
        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:790)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:557)
        at de.robv.android.xposed.XposedBridge.main(XposedBridge.java:132)
        at dalvik.system.NativeStart.main(Native Method)
     Caused by: java.lang.NullPointerException
        at com.ritchie.irldevapp.MainActivity.onActivityResult(MainActivity.java:326)
        at android.app.Activity.dispatchActivityResult(Activity.java:5434)
        at android.app.ActivityThread.deliverResults(ActivityThread.java:3211)
        at android.app.ActivityThread.handleSendResult(ActivityThread.java:3258) 
        at android.app.ActivityThread.access$1100(ActivityThread.java:138) 
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1252) 
        at android.os.Handler.dispatchMessage(Handler.java:99) 
        at android.os.Looper.loop(Looper.java:137) 
        at android.app.ActivityThread.main(ActivityThread.java:4921) 
        at java.lang.reflect.Method.invokeNative(Native Method) 
        at java.lang.reflect.Method.invoke(Method.java:511) 
        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:790) 
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:557) 
        at de.robv.android.xposed.XposedBridge.main(XposedBridge.java:132) 
        at dalvik.system.NativeStart.main(Native Method) 

Я понимаю, что данные о намерениях равны нулю.Я не уверен, почему или как это исправить?До линии, где возникает исключение, мои два приложения полностью идентичны, когда дело касается кода, связанного с Bluetooth.Я не начинаю никаких других действий и т. Д.

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        final BluetoothSPP bt = new BluetoothSPP(getApplicationContext());
        //final BluetoothSPP bt = new BluetoothSPP(MainActivity.this);
*snip general code*
        inputbtnBT.setOnClickListener(new View.OnClickListener() {
*snip all the checks*
                bt.setupService(); // setup bluetooth service
                bt.startService(BluetoothState.DEVICE_OTHER); // start bluetooth service
                Intent intent = new Intent(getApplicationContext(), DeviceList.class);
                startActivityForResult(intent, BluetoothState.REQUEST_CONNECT_DEVICE);
            }
        });

   @Override
    public void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);

        if(requestCode == BluetoothState.REQUEST_CONNECT_DEVICE) {
            if(resultCode == MainActivity.RESULT_OK) {
                bt.connect(data); //Exception here <-------
*snip*

1 Ответ

0 голосов
/ 20 июня 2019

Проблема заключалась в том, что я инициировал объект bluetooth вне oncreate.

Изменено:

BluetoothSPP bt = new BluetoothSPP(MainActivity.this); //in mainactivity

Кому:

BluetoothSPP bt; //in mainactivity
bt = new BluetoothSPP(MainActivity.this); //in oncreate
...