未知:ReactNative:CatalystInstanceImpl 捕获本机异常 java.lang.RuntimeException:无法调用

ffe*_*egu 5 javascript java android react-native

当我尝试从 React Native 模块调用函数时,它给我返回未知的错误:ReactNative:CatalystInstanceImpl 捕获本机异常 java.lang.RuntimeException:无法调用

\n

当我使用 Handler(Looper) 方法添加实际函数时,如果我只是打印或控制台模块方法的某些内容,它就会工作,它会抛出错误

\n

我下面的代码有什么问题?或者我错过了什么?

\n

这是我的本机模块类

\n
   package com.mosabeeapp;\nimport com.facebook.react.bridge.ReactApplicationContext;\nimport com.facebook.react.bridge.ReactContextBaseJavaModule;\nimport com.facebook.react.bridge.ReactMethod;\nimport com.printer.sdk.PrinterConstants;\nimport com.printer.sdk.PrinterInstance;\n\nimport android.annotation.SuppressLint;\nimport android.os.Handler;\nimport android.os.Looper;\nimport android.os.Message;\nimport android.util.Log;\n\nimport java.io.File;\n\npublic class CalendarModule extends ReactContextBaseJavaModule {\n    public PrinterInstance myPrinter;\n\n    private String devicesName;\n    private String devicesAddress;\n    private Integer baudrate;\n    private Boolean isConnected;\n\n    private Handler mHandler = new Handler() {\n        @SuppressLint("ShowToast")\n        @Override\n        public void handleMessage(Message msg) {\n\n            System.out.println("@@@@@@@@@@@@" + msg.what);\n            switch (msg.what) {\n                case PrinterConstants.Connect.SUCCESS:\n                    isConnected = true;\n                    System.out.println("isConnected status:::;" + isConnected);\n                    break;\n                case PrinterConstants.Connect.FAILED:\n                    isConnected = false;\n                    System.out.println("Connection failed");\n                    break;\n                case PrinterConstants.Connect.CLOSED:\n                    isConnected = false;\n                    System.out.println("Connection closed");\n                    break;\n                case PrinterConstants.Connect.NODEVICE:\n                    System.out.println("There is no device");\n                    isConnected = false;\n                    break;\n                case 0:\n                    System.out.println("0");\n                    break;\n                case -1:\n                    System.out.println("-1");\n\n                    break;\n                case -2:\n                    System.out.println("-2");\n\n                    break;\n                case -3:\n                    System.out.println("-3");\n\n                    break;\n                default:\n                    break;\n            }\n        }\n    };\n\n\n    CalendarModule(ReactApplicationContext context) {\n       super(context);\n   }\n\n    @Override\n    public String getName() {\n    return "CalendarModule";\n    }\n\n\n    @ReactMethod\n    public void printData(String data) {\n\n        System.out.println("----------buttonPrint--------");\n        devicesName = "Serial device";\n        devicesAddress = "/dev/ttyMT2";\n        String com_baudrate = "115200";\n        baudrate = Integer.parseInt(com_baudrate);\n\n        myPrinter = PrinterInstance.getPrinterInstance(new File(devicesAddress), baudrate,0,8, mHandler);\n\n        System.out.println("myPrinter.getCurrentStatus()-" + myPrinter.getCurrentStatus());\n        boolean b = myPrinter.openConnection();\n        System.out.println("-----------" + b);\n        if (b && myPrinter != null) {\n            System.out.println("Printer is ready");\n        } else {\n            System.out.println("Can not made a connection to the device");\n        }\n\n    }\n}\n
Run Code Online (Sandbox Code Playgroud)\n

这是我的完整错误

\n
 E/unknown:ReactNative: CatalystInstanceImpl caught native exception\n    java.lang.RuntimeException: Could not invoke CalendarModule.printData\n        at com.facebook.react.bridge.JavaMethodWrapper.invoke(JavaMethodWrapper.java:383)\n        at com.facebook.react.bridge.JavaModuleWrapper.invoke(JavaModuleWrapper.java:151)\n        at com.facebook.react.bridge.queue.NativeRunnable.run(Native Method)\n        at android.os.Handler.handleCallback(Handler.java:938)\n        at android.os.Handler.dispatchMessage(Handler.java:99)\n        at com.facebook.react.bridge.queue.MessageQueueThreadHandler.dispatchMessage(MessageQueueThreadHandler.java:27)\n        at android.os.Looper.loop(Looper.java:223)\n        at com.facebook.react.bridge.queue.MessageQueueThreadImpl$4.run(MessageQueueThreadImpl.java:226)\n        at java.lang.Thread.run(Thread.java:923)\n     Caused by: java.lang.reflect.InvocationTargetException\n        at java.lang.reflect.Method.invoke(Native Method)\n        at com.facebook.react.bridge.JavaMethodWrapper.invoke(JavaMethodWrapper.java:372)\n        at com.facebook.react.bridge.JavaModuleWrapper.invoke(JavaModuleWrapper.java:151)\xc2\xa0\n        at com.facebook.react.bridge.queue.NativeRunnable.run(Native Method)\xc2\xa0\n        at android.os.Handler.handleCallback(Handler.java:938)\xc2\xa0\n        at android.os.Handler.dispatchMessage(Handler.java:99)\xc2\xa0\n        at com.facebook.react.bridge.queue.MessageQueueThreadHandler.dispatchMessage(MessageQueueThreadHandler.java:27)\xc2\xa0\n        at android.os.Looper.loop(Looper.java:223)\xc2\xa0\n        at com.facebook.react.bridge.queue.MessageQueueThreadImpl$4.run(MessageQueueThreadImpl.java:226)\xc2\xa0\n        at java.lang.Thread.run(Thread.java:923)\xc2\xa0\n     Caused by: java.lang.UnsatisfiedLinkError: dlopen failed: library "libserial_port_sp.so" not found\n        at java.lang.Runtime.loadLibrary0(Runtime.java:1087)\n        at java.lang.Runtime.loadLibrary0(Runtime.java:1008)\n        at java.lang.System.loadLibrary(System.java:1664)\n        at com.printer.sdk.serial.SerialPort.<clinit>(SerialPort.java:68)\n        at com.printer.sdk.PrinterInstance.<init>(PrinterInstance.java:143)\n        at com.printer.sdk.PrinterInstance.getPrinterInstance(PrinterInstance.java:153)\n        at com.mosabeeapp.CalendarModule.printData(CalendarModule.java:88)\n        at java.lang.reflect.Method.invoke(Native Method)\xc2\xa0\n        at com.facebook.react.bridge.JavaMethodWrapper.invoke(JavaMethodWrapper.java:372)\xc2\xa0\n        at com.facebook.react.bridge.JavaModuleWrapper.invoke(JavaModuleWrapper.java:151)\xc2\xa0\n        at com.facebook.react.bridge.queue.NativeRunnable.run(Native Method)\xc2\xa0\n        at android.os.Handler.handleCallback(Handler.java:938)\xc2\xa0\n        at android.os.Handler.dispatchMessage(Handler.java:99)\xc2\xa0\n        at com.facebook.react.bridge.queue.MessageQueueThreadHandler.dispatchMessage(MessageQueueThreadHandler.java:27)\xc2\xa0\n        at android.os.Looper.loop(Looper.java:223)\xc2\xa0\n        at com.facebook.react.bridge.queue.MessageQueueThreadImpl$4.run(MessageQueueThreadImpl.java:226)\xc2\xa0\n        at java.lang.Thread.run(Thread.java:923)\xc2\xa0\nE/unknown:ReactNative: Exception in native call\n    java.lang.RuntimeException: Could not invoke CalendarModule.printData\n        at com.facebook.react.bridge.JavaMethodWrapper.invoke(JavaMethodWrapper.java:383)\n        at com.facebook.react.bridge.JavaModuleWrapper.invoke(JavaModuleWrapper.java:151)\n        at com.facebook.react.bridge.queue.NativeRunnable.run(Native Method)\n        at android.os.Handler.handleCallback(Handler.java:938)\n        at android.os.Handler.dispatchMessage(Handler.java:99)\n        at com.facebook.react.bridge.queue.MessageQueueThreadHandler.dispatchMessage(MessageQueueThreadHandler.java:27)\n        at android.os.Looper.loop(Looper.java:223)\n        at com.facebook.react.bridge.queue.MessageQueueThreadImpl$4.run(MessageQueueThreadImpl.java:226)\n        at java.lang.Thread.run(Thread.java:923)\n     Caused by: java.lang.reflect.InvocationTargetException\n        at java.lang.reflect.Method.invoke(Native Method)\n        at com.facebook.react.bridge.JavaMethodWrapper.invoke(JavaMethodWrapper.java:372)\n        at com.facebook.react.bridge.JavaModuleWrapper.invoke(JavaModuleWrapper.java:151)\xc2\xa0\n        at com.facebook.react.bridge.queue.NativeRunnable.run(Native Method)\xc2\xa0\n        at android.os.Handler.handleCallback(Handler.java:938)\xc2\xa0\n        at android.os.Handler.dispatchMessage(Handler.java:99)\xc2\xa0\n        at com.facebook.react.bridge.queue.MessageQueueThreadHandler.dispatchMessage(MessageQueueThreadHandler.java:27)\xc2\xa0\n        at android.os.Looper.loop(Looper.java:223)\xc2\xa0\n        at com.facebook.react.bridge.queue.MessageQueueThreadImpl$4.run(MessageQueueThreadImpl.java:226)\xc2\xa0\n        at java.lang.Thread.run(Thread.java:923)\xc2\xa0\n     Caused by: java.lang.UnsatisfiedLinkError: dlopen failed: library "libserial_port_sp.so" not found\n        at java.lang.Runtime.loadLibrary0(Runtime.java:1087)\n        at java.lang.Runtime.loadLibrary0(Runtime.java:1008)\n        at java.lang.System.loadLibrary(System.java:1664)\n        at com.printer.sdk.serial.SerialPort.<clinit>(SerialPort.java:68)\n        at com.printer.sdk.PrinterInstance.<init>(PrinterInstance.java:143)\n        at com.printer.sdk.PrinterInstance.getPrinterInstance(PrinterInstance.java:153)\n        at com.mosabeeapp.CalendarModule.printData(CalendarModule.java:88)\n        at java.lang.reflect.Method.invoke(Native Method)\xc2\xa0\n        at com.facebook.react.bridge.JavaMethodWrapper.invoke(JavaMethodWrapper.java:372)\xc2\xa0\n        at com.facebook.react.bridge.JavaModuleWrapper.invoke(JavaModuleWrapper.java:151)\xc2\xa0\n        at com.facebook.react.bridge.queue.NativeRunnable.run(Native Method)\xc2\xa0\n        at android.os.Handler.handleCallback(Handler.java:938)\xc2\xa0\n        at android.os.Handler.dispatchMessage(Handler.java:99)\xc2\xa0\n        at com.facebook.react.bridge.queue.MessageQueueThreadHandler.dispatchMessage(MessageQueueThreadHandler.java:27)\xc2\xa0\n        at android.os.Looper.loop(Looper.java:223)\xc2\xa0\n        at com.facebook.react.bridge.queue.MessageQueueThreadImpl$4.run(MessageQueueThreadImpl.java:226)\xc2\xa0\n        at java.lang.Thread.run(Thread.java:923)\xc2\xa0\nW/com.mosabeeapp: Accessing hidden method Landroid/graphics/FontFamily;-><init>()V (greylist-max-q, reflection, allowed)\n    Accessing hidden method Landroid/graphics/FontFamily;->addFontFromAssetManager(Landroid/content/res/AssetManager;Ljava/lang/String;IZIII[Landroid/graphics/fonts/FontVariationAxis;)Z (greylist-max-q, reflection, allowed)\n    Accessing hidden method Landroid/graphics/FontFamily;->addFontFromBuffer(Ljava/nio/ByteBuffer;I[Landroid/graphics/fonts/FontVariationAxis;II)Z (greylist-max-q, reflection, allowed)\n    Accessing hidden method Landroid/graphics/FontFamily;->freeze()Z (greylist-max-q, reflection, allowed)\n    Accessing hidden method Landroid/graphics/FontFamily;->abortCreation()V (greylist-max-q, reflection, allowed)\n    Accessing hidden method Landroid/graphics/Typeface;->createFromFamiliesWithDefault([Landroid/graphics/FontFamily;Ljava/lang/String;II)Landroid/graphics/Typeface; (greylist, reflection, allowed)\nE/unknown:ReactInstanceManager: destroyRootView called\nE/unknown:ReactInstanceManager: destroyRootView called, unmountReactApplication\n
Run Code Online (Sandbox Code Playgroud)\n