【问题标题】:React-native Hermes production build failsReact-native Hermes 生产构建失败
【发布时间】:2021-06-10 06:55:29
【问题描述】:

反应@17.0.1
react-native@0.63.4

没有 Hermes 的构建工作正常。

使用 Hermes 进行开发构建工作正常。

如果我注释掉所有代码并仅使用 <Text>Works</Text> 渲染第一个 App.ts,则使用 Hermes 进行生产构建工作正常。

如果我放回所有依赖项:Redux、React-navigation、react-native-paper 等 - 构建过程会卡在 34%:

...
info Done writing bundle output
info Done writing sourcemap output
info Copying 32 asset files
info Done copying assets
/Users/main/git/my-app/app/android/app/build/generated/assets/react/release/index.android.bundle:13:134: warning: the variable "Promise" was not declared in function "isBoldTextEnabled"
...

其余的日志遵循相同的模式:

the variable "SOMETHING" was not declared in function "SOMETHING"

react-native run-android --variant=release 没有发出警告,但它与生产版本相同:

...
info Done copying assets
<=====--------> 41% EXECUTING [3m 20s]
> :app:bundleReleaseJsAndAssets

据我了解,这意味着问题是由我的 npm 依赖项之一引起的。有没有一种简单的方法来解决这个问题,而无需手动逐个查看每个依赖项?

我已经解决了有关 StackOverflow 和 react-native Github 问题的所有相关问题。

【问题讨论】:

  • 您使用的是 MacO 还是 Windows?我认为the variable "SOMETHING" was not declared in function "SOMETHING" 这只是一个警告。如果你有前缀 Error: ENOENT: 而不是 warning: 的东西,你能在这些警告之前或之后检查吗?
  • @VictorBls 我 100% 确定没有错误。最后一个日志也遵循the variable "SOMETHING" was not declared in function "SOMETHING" 模式。我已经搜索了整个构建日志以确保没有错误。没有错误。
  • 请发布 pull logcat 输出
  • 在构建过程中似乎是一个静默错误,如果您没有忘记使用 eval 或其他任何内容,请尝试首先按 3/4 组删除“不受信任”的依赖项,然后逐步步骤你应该能够弄清楚

标签: android react-native react-native-hermes


【解决方案1】:

我找到了根本原因,方法是构建一个只有一个视图的空 APK,然后插入我的部分代码并一次又一次地构建。原来这个问题是由我的源代码中的一个大 JSON 文件引起的。

爱马仕有a known bug。而不是加载.json文件,我必须加载一个字符串和JSON.parse()它。

【讨论】:

    【解决方案2】:

    react@17.0.1 不支持react-native@0.63.4

    react-native@0.63.4 需要react@16.13.1

    【讨论】:

      【解决方案3】:
      猜你喜欢
      • 2020-03-19
      • 2018-01-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-03-08
      • 2019-03-21
      • 2019-06-06
      • 2015-05-31
      相关资源
      最近更新 更多