首页 文章

如何修复`不能在RN中强制转换为java.lang.String`?

提问于
浏览
0

我在Android的RN应用程序中遇到此错误:

06-06 16:37:54.455 7506-7569 / system_process E / AudioTrack:无法获得会话729的音频输出,流类型-1,用法13,采样率48000,格式0x1,通道掩码0x3,标志0x4 06- 06 16:37:54.455 7506-7569 / system_process E / SoundPool:创建AudioTrack时出错06-06 16:37:54.924 1286-1286 /? E / EGL_emulation:tid 1286:eglCreateSyncKHR(1669):错误0x3004(EGL_BAD_ATTRIBUTE)06-06 16:37:55.190 11821-11894 / com.efiat_rn E / unknown:ReactNative:本机调用中的异常java.lang.ClassCastException:com . facebook.react.bridge.ReadableNativeMap无法转换为com.facebook.react.bridge.ReadableNativeMap.getString(ReadableNativeMap.java:168)中的java.lang.String,位于com.facebook.react.modules.dialog.DialogModule.showAlert( DialogModule.java:232)位于com.facebook.react.Jy中的com.facebook.react.bridge.JavaMethodWrapper.invoke(JavaMethodWrapper.java:372)的java.lang.reflect.Method.invoke(Native Method),位于com.facebook.react.bridge.JavaModuleWrapper . 在android.os.Handler.dispatchMessage上的android.os.Handler.handleCallback(Handler.java:751)的com.facebook.react.bridge.queue.NativeRunnable.run(Native Method)中调用(JavaModuleWrapper.java:160)( Handler.java:95)在android.os.Looper.loop(Looper.java:154)的com.facebook.react.bridge.queue.MessageQueueThreadHandler.dispatchMessage(MessageQueueThreadHandler.java:29) at com.facebook.react.bridge.queue.MessageQueueThreadImpl $ 3.run(MessageQueueThreadImpl.java:192)at java.lang.Thread.run(Thread.java:761)06-06 16:37:55.191 11821-11894 / com .efiat_rn E / unknown:ReactNative:本机调用中的异常java.lang.ClassCastException:com.facebook.react.bridge.ReadableNativeMap无法在com.facebook.react.bridge.ReadableNativeMap.getString(ReadableNativeMap)中强制转换为java.lang.String . .java:168)位于com.facebook.react.bridge.JavaMethodWrapper的java.lang.reflect.Method.invoke(Native Method)中的com.facebook.react.modules.dialog.DialogModule.showAlert(DialogModule.java:232) .invoke(JavaMethodWrapper.java:372)位于com.facebook.react.bridge.JavaModuleWrapper.invoke(JavaModuleWrapper.java:160)的android.os上的com.facebook.react.bridge.queue.NativeRunnable.run(Native Method) .Handler.handleCallback(Handler.java:751)位于android.os.Handler.dispatchMessage(Handler.java:95)的com.facebook.react.bridge.queue.MessageQueueThreadHandler.dispatchMessage(MessageQueueThreadHand) ler.java:29)在android.os.Looper.loop(Looper.java:154)的java.lang.Thread的com.facebook.react.bridge.queue.MessageQueueThreadImpl $ 3.run(MessageQueueThreadImpl.java:192) . 运行(Thread.java:761)

它在iOS版本上运行得非常好 . 它没有告诉我哪个JS我做错了 . 我对如何修复它没有任何线索或想法 . 它在我启动应用程序时提示,当我关闭错误消息时,我可以看到半载应用程序,但不能点击 . 关于如何开始调试有什么想法吗?谢谢 .

1 回答

  • 3

    在ReactNative中,您正在调用需要String param的本机桥的方法 . 但你实际发送的是JsonObject .

    例,

    const data = {message: "hello}; // Consider this as your data
    

    如果你将它发送到网桥,它将创建一个NativeArray并将其发送到本机层(但你的图层的方法需要String) .

    现在,您必须将对象转换为String并将其发送到本机层

    const strData = JSON.stringify(data);
    

    现在将strData发送到本机层

    (如果您需要更多详细信息,请在下方评论,或者您可以更清楚地告诉您的错误以获得一些明确答案)

相关问题