反应本机下载javascript捆绑100%卡住
Posted
技术标签:
【中文标题】反应本机下载javascript捆绑100%卡住【英文标题】:react native downloading javascript bundle 100% stuck 【发布时间】:2019-01-28 17:18:39 【问题描述】:当我尝试执行 npm start 时,它工作正常,但是当我尝试通过 expo 运行我的应用程序时,进程一直运行到 100%,之后什么也没有发生。我没有得到那里的确切问题。我在 package.json 中有以下内容....请帮我解决这个问题。
"name": "ProMeeting",
"version": "0.1.0",
"private": true,
"devDependencies":
"jest-expo": "~29.0.0",
"react-native-scripts": "^1.14.0",
"react-test-renderer": "16.3.1"
,
"main": "./node_modules/react-native-scripts/build/bin/crna-entry.js",
"scripts":
"start": "react-native-scripts start",
"eject": "react-native-scripts eject",
"android": "react-native-scripts android",
"ios": "react-native-scripts ios",
"test": "jest"
,
"jest":
"preset": "jest-expo"
,
"dependencies":
"@babel/preset-react": "^7.0.0-beta.56",
"expo": "^29.0.0",
"firebase": "^5.3.1",
"native-base": "^2.7.2",
"react": "16.3.1",
"react-native": "^0.55.4",
"react-native-firebase": "^4.3.8",
"react-native-vector-icons": "^5.0.0",
"react-navigation": "^2.11.2"
为说明目的添加了屏幕截图
【问题讨论】:
我遇到了同样的问题。我刚刚关闭了应用程序并重新启动了应用程序。它适用于我的情况。 【参考方案1】:似乎有多种原因会导致这种情况发生。我尝试在我的模拟器上运行其他应用程序,重新启动我的模拟器,甚至尝试删除构建文件夹并从头开始重建,但这些方法都没有解决问题。
最终奏效的是重新启动我一直在后台运行的 React Native 调试器。
如果您启用了离线节流,您还可以检查 React Native Debugger 的网络选项卡。在某些情况下,禁用它也应该可以解决问题。
【讨论】:
天啊。这正是我必须做的。 也为我工作。为我省了很多力气。谢谢 你如何重启 React Native 调试器? 退出React Native Debugger
应用程序,就像退出任何其他 macOS 应用程序然后重新启动它一样。它没有专门的重启选项
如果您没有安装 React Native Debugger
应用程序,并且正在通过浏览器运行它,请杀死所有 terminal
实例,然后在模拟器中重新加载(Mac 上的 CMD+R ),然后拉起开发菜单(CMD+D),选择Stop Debugging JS Remotely
杀掉它【参考方案2】:
在我的情况下,这总是在我打开远程 JS 调试时发生。 JS 包将加载到 100%,但随后应用程序被卡住了。 React Native Debugger 无法连接,错误消息Another debugger is already connected
。
在尝试了各种事情(缓存重置、重新启动 Metro builder、重新启动模拟器)但没有任何运气之后,我记得我曾经使用过的唯一“其他调试器”是 Chrome Devtools,所以我退出了 Chrome,然后立即退出又开始工作了。
事实证明,即使我关闭了调试应用程序的 Chrome 选项卡,Chrome 中的一些后台进程仍作为调试器附加到应用程序(在模拟器重启后也是如此)。然后它在启动时遇到了某种断点或异常,所以它暂停了,我只能看到Downloading javascript bundle 100%
消息。
【讨论】:
【参考方案3】:这就是我在 Mac 中解决问题的方法。
-
我的屏幕卡在 Downloading javascript bundle 100%
-
选择模拟器,在 Mac 中按 (Command + D),模拟器将显示选项集。
-
现在将加载应用程序
【讨论】:
【参考方案4】:就我而言,我的代码在 Android 中运行,但在 iOS 模拟器中运行。
SplashScreen.preventAutoHide();
是问题所在。
我调用了两次方法,分别是 App.js 和 Main.js。
在 App.js 中删除后,它工作了。
(我认为restarting the React Native Debugger
也有帮助)
【讨论】:
【参考方案5】:react-native-firebase 经常会导致同样的问题。
下面是 react-native-firebase 的官方集成指南。 https://rnfirebase.io/docs/v5.x.x/installation/ios
B) 在 didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 方法的开头添加以下行:
[FIRApp 配置]; “建议在创建 RCTRootView 之前在方法中添加该行。否则初始化可能在 JavaScript 代码中已经需要之后发生 - 导致应用程序未初始化异常。”
您有 GoogleService-Info.plist 吗? 你安装了 pod 吗? 你有没有硬件>擦除模拟器中的所有内容和设置?
【讨论】:
【参考方案6】:我也遇到了同样的问题,做了所有可能的事情,但没有奏效,我恢复了所有更改,但问题仍然存在..
我创建了自己的解决方案,它非常适合我,也许它可以帮助某人,您也可以在 Apple 和 Android 上尝试
-
使用
npm update -g expo-cli
和npm update -g react-native
更新expo-cli 和react-native
在模拟器或设备上卸载 expo 应用并重新安装
使用expo init project_name
创建新项目(使用您的原始项目名称,重命名之前的名称以进行备份)。
尝试在您的 expo 应用中运行这个新的空白应用,它应该可以正常运行。
现在从不工作的 package.json 中逐个或批量安装每个依赖项,但不使用命令 expo install package_name
提供版本(手动,因为可能由于版本冲突)。
现在将您的旧项目文件和目录(包括 app.json
和 App.js
)添加到这个新项目中。
使用expo start -c
命令再次运行您的项目。
你的工作项目开始了! 编码愉快!!!
【讨论】:
【参考方案7】:截至 2021 年 1 月,your node version 可能是导致此问题的原因之一。
使用node -v
检查您的节点版本,如果版本是15.x.x
,请尝试将版本降级为14.15.1
:
$ npm install -g n
$ n 14.15.1
【讨论】:
【参考方案8】:就我而言,当我尝试使用物理设备时,然后尝试在模拟器中安装。然后它就这样卡住了。我在停止调试器后解决了这个问题。为此使用以下步骤。
安卓:
-
进入手机设置>>已安装的应用>>选择你的应用并点击清除数据。
卸载现有应用并尝试安装。
IOS:
-
卸载现有应用并尝试安装为新应用。
摇动您的设备并停止调试并再次尝试安装。
【讨论】:
【参考方案9】:好吧,就我而言,我删除了代码中的一个 for 循环,这足以解决这个问题。显然,我的反应应用程序每次运行该循环时都会崩溃。
【讨论】:
【参考方案10】:在我的情况下;
我添加了一个新包 (@khanshamshad32/carousel) v1.0.1。我猜包有问题,我在真实设备上的博览会卡住了 %100.. 我要删除所有项目包。
1-来自package.json(相对实例)
2-来自package-lock.json(相对实例)
3- 来自 node_modules 的“包名”文件夹
它确实有效
【讨论】:
【参考方案11】:你应该尝试建立一个新的 react-native 项目并将你的文件传输到新项目然后尝试再次运行它,当构建文件丢失时会出现此问题
【讨论】:
【参考方案12】:好吧,这篇文章很旧,但让我们走吧, 我是如何为自己解决这个问题的:
> install yarn
> run: yarn remove react-native
> run: yarn add react-native
> run: react-native run-android
【讨论】:
以上是关于反应本机下载javascript捆绑100%卡住的主要内容,如果未能解决你的问题,请参考以下文章