调试方式

使用流程

  1. 启动Metro服务 npm start,可以设置不同端口号npm run start –verbose – –port 8082
  2. 启动项目npm run android
  3. 打开开发者菜单,点击Debug,如果没有打开浏览器调试窗口,可尝试在Settings页面配置IP:Port,设置端口转发

开发人员菜单

  • Android真机调试方式:摇一摇手机,弹出调试窗口
  • VS Code中按F1,输入reactnative:显示开发人员菜单
  • 通过adb命令:adb shell input keyevent 82

调试菜单

Reload

如果只是修改了JS文件,可通过此菜单重新load。如果修改了资源文件则需要重新编译项目。

Change Bundle Location

改变打包后的地址

Show Element Inspector

显示元素检查器

Disable Fast Refresh

禁止快速刷新

Show Perf Monitor

显示监控窗口

Settings

Enable Sampling Profiler

Debug

点击Debug,会打开浏览器调试窗口,可以在浏览器中通过开发者工具进行debug。可以在浏览器页面reload

Android端如何debug

  1. 项目根目录启动项目,确保package server启动。localhost:8081可以访问
  2. 对于Android5.0+,端口转发,adb reverse tcp:8081 tcp:8081,
  3. 打开开发者菜单,选择Setting,配置Debug server host & port for device,输入ip:8081
  4. 点击菜单中的Reload

常见问题总结

Invariant Violation: Calling synchronous methods on native modules is not supported in Chrome

https://stackoverflow.com/questions/61067004/invariant-violation-calling-synchronous-methods-on-native-modules-is-not-suppor

Error: Unable to resolve module ./debugger-ui/debuggerWorker.xxxx.js

尝试打开React Native Debug Menu 页面,重新关闭打开debug

https://github.com/facebook/react-native/issues/28844