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}\nRun 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\nRun Code Online (Sandbox Code Playgroud)\n
| 归档时间: |
|
| 查看次数: |
1251 次 |
| 最近记录: |