React Native app不是为Android构建的 - SyntaxError:\ u只能跟一个Unicode字符序列

Tom*_*Tom 5 android react-native react-native-android

我的应用程序在iOS上正常运行,但无法在Android上运行.我上周花了很多时间让它工作,并认为它是,并且问题已经恢复.

在此输入图像描述

日志显示 在此输入图像描述

这里有完整的日志,以防有其他相关内容.https://pastebin.com/by6uCmPW

SyntaxError: \u can only be followed by a Unicode character sequence 
Run Code Online (Sandbox Code Playgroud)

当我重新加载时,我得到一个白色屏幕,没有显示错误,我无法通过这个,并且它不会改变我是否连接到调试器.

在此输入图像描述

我查看了源代码,错误来自以下行

在此输入图像描述

这是来自React Native源的https://github.com/facebook/react-native/blob/a974c140db605ecbdf8d3faa7a079b7e2dcebb09/Libraries/ReactNative/YellowBox.js#L263

刷新后,我在logcat中收到以下错误,尽管模拟器中没有任何内容.

06-14 13:52:10.467:E/art(2691):没有找到com.facebook.react.bridge.Inspector com.facebook.react.bridge.Inspector.instance()的实现(试过Java_com_facebook_react_bridge_Inspector_instance和Java_com_facebook_react_bridge_Inspector_instance__)

umm*_*sla 1

好的,我遇到了同样的问题,这是我想出的解决方案,为了使其工作,我已添加console.disableYellowBox = true;index.android.js所有导入行之后。


根据 React Native 文档

可以在开发过程中使用 禁用 YellowBoxes console.disableYellowBox = true;。可以通过设置应忽略的前缀数组以编程方式忽略特定警告:console.ignoredYellowBox = ['Warning: ...'];

RedBoxes 和 YellowBoxes 在发布(生产)版本中自动禁用。


这不是一个理想的解决方法,可能仍然需要一些修改,但通过这样做,我能够编译该应用程序。

然后,为了更深入一些,我删除了最近添加的内容 ( console.disableYellowBox = true;from index.android.js) 并将{stacktraceVisible ? '\u{25BC}' : '\u{25B6}'} Stacktracefrom替换\src\node_modules\react-native\Libraries\ReactNative\YellowBox.js 为接下来的内容之一:

  • {stacktraceVisible ? '\u25BC' : '\u25B6'} Stacktrace
  • {stacktraceVisible ? '-' : '-'} Stacktrace

它似乎解决了问题,但不确定这种方式有多优雅以及如何能够在每次之后更新yarnnpm i