首页 > 其他分享 >如何在原生鸿蒙中进行RN的断点调试

如何在原生鸿蒙中进行RN的断点调试

时间:2024-12-01 12:55:40浏览次数:4  
标签:鸿蒙 chrome 点击 flipper RN 断点 调试

方式一  chrome devtools的方式

第一步:metro的方式加载bundle

先设置好原生这边的代码,然后记得打开RN服务器。

注意这个enableDebugger的值一定要设置为true

第二步:配置devtools调试端口号

打开chorome,输入chrome://inspect,会进入devtools的调试设置页面:

点击页面上的configure按钮,进行端口号的设置,如下图。

具体设置方式为:host默认localhost,后面端口是重点,如果你RN服务端开的是8081就是8081,你开的是8082就是8082。多配置是不要紧的,不要配错了就行。配置完上方的端口号,记得勾选左下角的Enable port forwarding,最后点击done即可。

按照上面这个顺序,依次配置完,点击完done后,等待大概5秒,会出现这个页面:

此时你会看到Remoto Target里面有了一个target,名叫Hermes React Native,点击这个target里面的inspect链接。

注意:这一块偶尔会自动消失,如果消失了,就要杀死APP重启,然后重新加载成功bundle。再去命令行里面按一下d键,等手机上出现reload以后,按一下刷新页面。刷新完等个大概5秒就出来了。

第三步:添加RN那边的JS源码

点击Sources > Workspace选项卡,点击Add folder按钮,在弹出来的资源选择器中选择当前项目的源文件然后点击选择文件夹按钮,如图:

问题解析

问题一:Failed to fetch source url xxx remote fetches not permitted

解决方案:这个问题可能是RN服务端被挂起了,重启手机,关闭命令行,然后clean一下项目,按照之前启动RN服务端的步骤重新来一遍,不报错了。

问题二:在chrome左边栏打断点并不生效

如果直接在chorome的左边栏打断点,进程并不会阻塞住。但是大家看我的Log已经在控制台打出来了,这说明该行代码其实已经执行过了。

解决方案:在开发安卓IOS的时候,直接在chrome左边栏打上断点就可以了。但是鸿蒙这里目前可能是不支持,需要使用在代码中加debugger的方式

如果仍然不生效,需要杀死APP重新加载一下bundle。然后关闭chrome调试的网页,重进一下,最终断点成功:

方式二  flipper的方式

第一步:下载flipper

flipper是一个三方工具,需要手动下载一下。下载链接为:https://github.com/facebook/flipper/releases/download/v0.171.1/Flipper-win.zip

进不去网页的家人们,记得用4G流量去下载即可。

第二步:配置flipper环境变量

下载完要先配置一下环境变量,配置的路径是有flipper.exe的那个

配置完以后,如果你此时打开flipper:

映入眼帘的是一个报错,无视即可不影响调试。

还有一种快速打开flipper的方式,你到RN服务端按一下D键,弹窗调试菜单,选择openDebugger,就会自动打开flipper。

第三步:进入flipper模式

点击一下Hermes Debugger(RN),进入鸿蒙调试模式

这里左上角报了一个NO APPLICATION SELECTED,不用管,不影响调试。

第四步:Flipper中打开RN代码

点击完左边的Hermes Debugger(RN)后,到右边点一下源代码选项卡。

随后按Ctrl + P(macox上command + P),然后输入你要调试的文件名,选择文件即可打开源代码

第五步:制造断点

和chrome调试不一样的地方是,这个Flipper在你要定位的行号点击即打下断点,当代码运行到此处时便会自动停下,如图所示:

当然,和chrome一样,flipper也支持在代码中写debugger的方式,在你想要断点的地方写上debugger即可,断点时会自动阻塞:

第六步:更新RN代码

当你修改完JS代码,flipper调试这里也会自动更新,前提是你得先把上一次的debug结束,点击右上角的继续执行脚本即可。

问题解析

问题一  报错NO DEVICES FOUND

解决方案:出现这个问题,大概率是RN服务器没连上,重启一下手机和RN服务器即可

问题二  Flipper连接手机失败

解决方案:如果是这个报错,说明RN服务器正常,但是手机没有连上电脑,可能是数据线松动了。检查一下USB调试是否配置,还有数据线是否松动

标签:鸿蒙,chrome,点击,flipper,RN,断点,调试
From: https://www.cnblogs.com/foodie/p/18579700

相关文章

  • 「Mac畅玩鸿蒙与硬件39」UI互动应用篇16 - 倒计时环形进度条
    本篇将带你实现一个倒计时环形进度条应用。用户可以设置倒计时的时间,启动倒计时后,应用会动态显示一个随着时间递减的环形进度条,同时伴有数字倒计时显示。这是结合动画效果和时间管理的实用示例。关键词UI互动应用倒计时器环形进度条动画效果状态管理一、功能说明倒计......
  • 按键 芯片jornada680 linux驱动程序
    /*drivers/input/keyboard/jornada680_kbd.cHPJornada620/660/680/690scankeyboardplatformdriverBasedonhp680_keyb.cCopyright©2006PaulMundtCopyright©2005AndriySkulyshSplitfromdrivers/input/keyboard/hp600_keyb.cCopyright©2000YaegashiT......
  • Unity 设计模式-状态模式(State Pattern)详解
    状态模式(StatePattern)状态模式(StatePattern)是一种行为型设计模式,它允许一个对象在其内部状态发生改变时改变其行为。状态模式将与状态相关的行为封装在独立的状态类中,系统在运行时根据状态的变化来切换不同的行为。通过状态模式,状态转换和行为执行得到了很好的分离,符合面......
  • 《操作系统真相还原》| 实验记录2.0【MBR,Loader,Kernel代码汇总】
    MBR.S%include"boot.inc"SECTIONMBRvstart=0x7c00 movax,cs movds,ax moves,ax movss,ax movfs,ax movsp,0x7c00 movax,0xb800 movgs,ax mov ax,0600h mov bx,0700h mov cx,0 mov dx,184fh int 10h movbyte[gs:0x00],'1......
  • 基于TCN-Transformer-KAN混合模型实现电力负荷时序预测——Kolmogorov-Arnold Network
    前言系列专栏:【深度学习:算法项目实战】✨︎涉及医疗健康、财经金融、商业零售、食品饮料、运动健身、交通运输、环境科学、社交媒体以及文本和图像处理等诸多领域,讨论了各种复杂的深度神经网络思想,如卷积神经网络、循环神经网络、生成对抗网络、门控循环单元、长短期记忆......
  • Pattern: Service Mesh
     https://philcalcado.com/2017/08/03/pattern_service_mesh.html Sincetheirfirstintroductionmanydecadesago,welearntthatdistributedsystemsenableusecaseswecouldn’teventhinkaboutbeforethem,buttheyalsointroduceallsortsofnewissue......
  • MongoDB Write Concern
    写关注(WriteConcern)描述了向单独的mongod、副本集或分片集群进行写操作时,MongoDB所要求的确认级别。在分片集群中,mongos实例会将写关注传递给分片。 注:对于多文档事务,应在事务级别而非单个操作级别设置写关注。不要为事务中的单个写操作明确设置写关注。如果为多文档事务......
  • 手把手教你华为鸿蒙开发之第五节
    华为鸿蒙开发:条件语句和分支逻辑引言在编程中,根据不同的条件执行不同的代码块是常见的需求。华为鸿蒙操作系统的开发同样涉及到这些基础的控制流语句。本文将通过DevEcoStudio介绍鸿蒙开发中的条件语句和分支逻辑,包括if语句、switch语句和三元条件表达式,以及如何在UI中......
  • 手把手教你华为鸿蒙开发之第四节
    华为鸿蒙开发:数组操作基础引言在华为鸿蒙操作系统的开发中,数组是一种常用的数据结构,用于存储和管理一系列有序的元素。本文将通过DevEcoStudio介绍数组的基本操作,包括数组的定义、取值、修改、添加和删除元素,以及使用splice方法在任意位置进行更复杂的数组操作。数组的基......
  • 华为鸿蒙开发基础第三节
    华为鸿蒙开发基础第三节:一元运算符、比较运算符、逻辑运算符及运算符优先级引言在华为鸿蒙操作系统的开发中,DevEcoStudio是官方推荐的集成开发环境(IDE),它提供了代码编写、调试、打包和签名等一系列开发功能。本文将结合DevEcoStudio,详细介绍鸿蒙应用开发中常用的一元运算符......