【问题标题】:React Native 0.59 development build fails with metro server errorReact Native 0.59 开发构建因 Metro 服务器错误而失败
【发布时间】:2019-08-08 11:23:47
【问题描述】:

升级到 0.59 后,开发构建失败并出现以下错误。在 0.58.6 之前它运行良好

“无法加载脚本。请确保您正在运行 Metro 服务器(运行 'react-native start')或您的捆绑包已正确打包以供发布。”

我还在 AndroidManifest.xml 中添加了android:usesCleartextTraffic="true",但它仍然无法正常工作。不过,发布版本运行良好。

【问题讨论】:

  • 尝试从 android 文件夹中清理运行 ./gradlew clean 一次以清理以前的构建并再次运行
  • 已经试过了,甚至清除了node_modules文件夹,但它仍然无法工作。
  • 这是您正在尝试的发布版本还是开发版本?如果开发是运行命令时启动的 Metro packager bundle 终端?
  • 它是我正在尝试构建的开发版本,是的 Metro 包捆绑器可以正确启动,但卡在“正在加载依赖关系图...”
  • 我有同样的问题,这个链接删除了我的问题:stackoverflow.com/questions/55441230/…

标签: android react-native


【解决方案1】:

您需要在项目级别build.gradle 中将目标 sdk 更改为 27 而不是 28。从 Android P(28) 开始,Google 禁止使用 http。

【讨论】:

  • 现在用sdk 27​​试过了,还是报同样的错误。
  • @Ehsan - 在更改到 sdk 目标后,您是否运行 gradle clean 并重新同步您的 gradle 文件?
  • @powerup7 是的,已清除 gradle 缓存和其他内容,但仍显示相同的错误。我还创建了一个新的 RN 项目只是为了进行测试,它抛出了同样的错误。 0.59 版本似乎有问题
  • @Ehsan 尝试运行 npm run start --reset-cache 以清除缓存。如果它不起作用,那么您需要为 android 离线捆绑一个捆绑文件。
  • 我遇到了同样的问题...有人解决了吗?使用 0.59.1
【解决方案2】:

我在使用 genymotion 时遇到了同样的问题,然后我意识到模拟器处于离线状态,这就是它无法连接到 Metro 服务器的原因。

【讨论】:

    【解决方案3】:

    "react-native": "0.64.1",

    我使用了其他解决方案,但我已经通过其他方式解决了这个问题,将 bundleInDebug: true, 更改为 project.ext.react 更改为 android > app > build.gradle

    project.ext.react = [
    bundleInDebug: true,
    enableHermes: ***,  
    

    ]

    【讨论】:

      猜你喜欢
      • 2018-06-18
      • 2019-12-09
      • 1970-01-01
      • 2011-04-12
      • 2018-10-21
      • 2022-07-07
      • 1970-01-01
      • 1970-01-01
      • 2021-11-25
      相关资源
      最近更新 更多