RN调试坑点总结(不定期更新)
前言
- 我感觉,如果模拟器是个人的话,我已经想打死他了
- 大家不要催我学flutter啦,哈哈哈,学了后跟大家分享下
RN报错的终极解决办法
众所周知,RN经常遇到无可奈何的超级Bug, 那么对于这些问题的终极解决办法是什么呢?
我总结了3点
终极解决方法有三种:
- 运行npm start — —reset-cache清除缓存,然后再跑
- 总保持有一个node_modules备份,要是安装模块出问题了就从备份复制一份进项目里
- 重新启动MAC电脑
(以上操作在多次run,或者删除APP再run后失败的情况下使用)
目录
- Android真机调试
- IOS调试篇
- WebView调试篇
Android真机调试
- 安装adb,后来可以通过adb devices来检测设备连接成功没有
- 用USB连接Android手机和电脑, 选择“同意数据传输”
- 启动Android的USB调试模式 https://zhidao.baidu.com/question/871975720968548932.html
- 运行react-native run-android
IOS模拟器篇
1.MAC上调试工具React-native-debugger下载缓慢及其解决办法。
我们可以下载React-native-debugger,用于RN项目的 调试
![]()
我在下载的时候,遇到两个无语的问题
- 这玩意儿是没有官网的,你只能从github上下载,我这里给一个点击就能直接下载的链接:https://github.com/jhen0409/react-native-debugger/releases/download/v0.10.0/rn-debugger-macos-x64.zip
- 这个东西大概90M左右,下载慢不说,而且因为网络原因,经常下载到快完成的时候失败! 加快下载速度的方式如下:
- 打开你的VPN
- 打开上面的链接:https://github.com/jhen0409/react-native-debugger/releases/download/v0.10.0/rn-debugger-macos-x64.zip,很快就能下好
2.调试中,可能偶尔就会出现让人非常无语的红屏问题,报(Could not connect to development server)
比如下面的这个不能连接到服务器就是我偶尔或经常遇到的问题,
解决方法:一般刷新几次就好了,如果刷新多次无效,那么重新通过react-native启动项目
(如果IOS模拟器是个人我已经想要打死他了。。。)

3.调试中报错:Missing request token for request
解决方法:反正重启就万完事了。。。不行就再重启

4. 导入新的图片image后,显示红屏(非法字符 Error on load image on React-native: Unexpected character )
- 解决方法:1.关闭项目,重新通过命令行启动。 2.如果还不行,那么再重试多次,一般会行的

5.红屏,提示 JSON value 'XXXX' of type NSString cannot be converted to a YGValue. Did you forget the % or pt suffix ?

6.红屏,和上面一样,但提示的文字是“Runtime is not ready for debugging”
这一般是这种情况: 就是你先打开了调试器(React-Native-debugger),然后才启动的项目,项目认为“自己还没有准备好调试”,所以报了这个错误
解决方法
- 调出控制台菜单(IOS模拟器下通过control + D开启)
- 选择Stop Remote JS Debugging

7.红屏,和上面一样,提示文字: “Unhandled JS Exception: global.nativeTraceBeginSection is not a function”

这个问题据说不少人遇到过,解决方法是:在模拟器上删掉APP,然后重新编译安装,
它属于“完全的不可抗力”,不是因为你做错了什么,但问题恰恰就这样出现了。。。。。
参考链接 https://cloud.tencent.com/developer/ask/216506/answer/333025
8. 发现程序有错但是控制台看不到红色错误(error)???
这是因为。。。。。。。报的错误可能不是红色的,而是白色的
下面的这位error老弟,我还是第一次看到长得这么“白白净净” 的Error, 难道你不应该是“红脸关公”
RN调试坑点总结(不定期更新)的更多相关文章
- weex+vue2.x 踩坑实录(不定期更新)
执行 npm start 显示空白页面 这个是开始使用weex就出现的一个大坑,说实话对新手真的很不友好. 1.打开控制台显示:Cannot assign to read only property ...
- net core 小坑杂记之配置文件读取(不定期更新)
其实很早就想写了,原想等积累差不多了再写的,但是发现遇到一个当时记下效果会比较好,所以就不定期更新这个系列了,后面获取会整个整理一下. 此篇记载net core入门时踩的一些坑,网上教程太少了,也不规 ...
- 从壹开始前后端分离 [.netCore 不定期更新 ] 三十五║ 完美实现全局异常日志记录
缘起 哈喽我是不定期更新的日常,昨天群里小伙伴问到了记录日志,当然,以前我也挖过这个坑,后来一直没有来得及填上,也想着 swagger 一直又有错误信息展示的功能,就迟迟没有添加这个功能,不过昨天夜里 ...
- React Native之坑总结(持续更新)
React Native之坑总结(持续更新) Genymotion安装与启动 之前我用的是蓝叠(BlueStack)模拟器,跑RN程序也遇到了一些问题,都通过搜索引擎解决了,不过没有记录. 但是Blu ...
- 基于C/S架构的3D对战网络游戏C++框架_【不定期更新通知】
由于笔者最近有比赛项目要赶,这个基于C/S架构的3D对战网络游戏C++框架也遇到了一点瓶颈需要点时间沉淀,所以近一段时间不能保证每天更新了,会保持不定期更新.同时近期笔者也会多分享一些已经做过学过的C ...
- React性能优化记录(不定期更新)
React性能优化记录(不定期更新) 1. 使用PureComponent代替Component 在新建组件的时候需要继承Component会用到以下代码 import React,{Componen ...
- 不定期更新的IDEA功能整理
目录 不定期更新的IDEA功能整理 idea 命令 Preferences 和 Project Structure Keymap HTTP Proxy Postfix Completion 插件 插件 ...
- 采用异步来实现重新连接服务器或者重新启动服务 C#中类的属性的获取 SignalR2简易数据看板演示 C#动态调用泛型类、泛型方法 asp .net core Get raw request. 从壹开始前后端分离[.NetCore 不定期更新] 38 ║自动初始化数据库
采用异步来实现重新连接服务器或者重新启动服务 开启异步监听,不会导致主线程的堵塞,在服务异常断开后一直检测重新连接服务,成功连接服务后通知各个注册的客户端! #region 检测断线并重连OPC服务 ...
- iOS开发调试技巧总结(持续更新中)
作者:乞力马扎罗的雪 原文 对于软件开发而言,调试是必须学会的技能,重要性不言而喻.对于调试的技能,基本上是可以迁移的,也就是说你以前在其他平台上掌握的很多调试技巧,很多也是可以用在iOS开发中.不 ...
随机推荐
- [vue]初探生命周期
Vue 实例从创建到销毁的过程,就是生命周期.也就是从开始创建.初始化数据.编译模板.挂载Dom→渲染.更新→渲染.卸载等一系列过程,我们称这是 Vue 的生命周期. 一.创建/销毁,缓存 1.cre ...
- 02 | Java内存模型:看Java如何解决可见性和有序性问题
什么是 Java 内存模型? 导致可见性的原因是缓存,导致有序性的原因是编译优化,那解决可见性. 有序性最直接的办法就是禁用缓存和编译优化,但是这样问题虽然解决了,我们程序的性能可就堪忧了. 合理 ...
- 深入浅出Object.defineProperty()
深入浅出Object.defineProperty() 红宝书对应知识点页码:139页 红宝书150页:hasOwnProperty( )方法可以检测一个属性是存在于实例中,还是存在于原型中,给定属性 ...
- SpringCloud(三):服务消费以及负载均衡(RestTemplate+Ribbon)
一.什么是Ribbon: Ribbon是Netflix发布的开源项目,主要功能是提供客户端的软件负载均衡算法. 将Netflix的中间层服务连接在一起.Ribbon客户端组件提供一系列完善的配置项如连 ...
- 【iOS bug记录】UICollectionviewCell刷新变得这么莫名其妙?
项目是一个即时聊天的社交软件,聊天流采用的是UICollectionView,随着进度的完善,发现一个特别的bug,UICollectionviewCell的复用,并没有直接insert进去,而是出现 ...
- python基础之字符串讲解(下)
7.swapspace 这个命令是让大小写翻转 s = 'qwerQ' s3 = s.swapcase() print(s3) 8.title 每个隔开(特殊字符或者数字)的单词首字母大写 s = ' ...
- Unity Ruby's Adventure 第二步
加载游戏资源(已注册Unity) Step1:打开Unity 依次点击 Window>Asset Store(资源商店) Step2:搜索资源 Ruby's Adventure Step3:购买 ...
- Http中URI协议 和URL协议的区别和联系
虽然说URL和URI是整个网络协议栈很常用的东西.可是,假如你去面试求职者其中的差别,估计十个人有八个人答复不上来. 想要熟悉基础知识的朋友最好还是看一下我这个文章. “A Uniform Resou ...
- Hook Java API以获得MD5加密前数据
Java实现MD5加密 在Java中,我们用MD5对数据进行加密,代码大概是这样的: import java.security.MessageDigest; import java.security. ...
- scanf和printf格式化输入输出中非常实用的小技巧
输入输出几乎是每个C程序必须具备的功能,因为有了它们,程序才有了交互性.C提供的输入输出函数除了具有必须的输入输出功能外,还有一些其他实用的小技巧,了解这些小技巧将会为程序带来更友好的用户体验. 一. ...