ReactNative踩坑之配置调试端口的解决方法
发布时间 - 2026-01-11 02:33:35 点击率:次本文介绍了ReactNative踩坑之配置调试端口的解决方法,分享大家,顺便也给自己留个笔记

问题是这样的,由于公司的机器安装了安全软件,http://localhost:8081被占用了。(windows上配置环境真不易,最后一步还是被公司环境坑了)
所以导致按照教程配置完环境最后到真机上还是刷不出来界面
那么我们就这么放弃了吗?当然不,不然就白忙活了
分析问题:端口被占用,那我们换一个端口不就行啦,于是乎各种查阅资料,发现PackageManager(包管理服务)在启动的时候是可以配置端口的.如下命令
react-native start --port 18081
这样Launch起来的包管理服务就在端口18081上了,在Chrome上敲localhost:18081神奇的显示了ReactNative的相关界面,说明正常了。
接着在真机上需要敲这个命令
adb reverse tcp:18081 tcp:18081
这个命令会将手机的调试端口设置成与包管理服务一致的端口18081
然后我在真机上跑了一遍程序,结果还是显示不出来。莫名的伤感有没有
在各种找不到资料的情况下,开始翻看ReactAndroid源码,经过分析最后找到这么一段关键的代码
public String getDebugServerHost() {
// Check host setting first. If empty try to detect emulator type and use default
// hostname for those
String hostFromSettings = mPreferences.getString(PREFS_DEBUG_SERVER_HOST_KEY, null);
if (!TextUtils.isEmpty(hostFromSettings)) {
return Assertions.assertNotNull(hostFromSettings);
}
String host = AndroidInfoHelpers.getServerHost();
if (host.equals(AndroidInfoHelpers.DEVICE_LOCALHOST)) {
FLog.w(
TAG,
"You seem to be running on device. Run 'adb reverse tcp:8081 tcp:8081' " +
"to forward the debug server's port to the device.");
}
return host;
}
好家伙,原来是从SharedPreference中先读了PREFS_DEBUG_SERVER_HOST_KEY这个值,如果为空则用AndroidInfoHelpers.getServerHost()这个函数返回值(也就是loacalhost:8081)
那么解决办法就浮出水面了,只需要在Application初始化的时候讲这个值设置成我们自定义的就好了,类似
SharedPreferences mPreferences = PreferenceManager.getDefaultSharedPreferences(applicationContext);
mPreferences.put("debug_http_host", "localhost:18081");
这段代码最好写在SoLoader.init(this, /* native exopackage */ false);调用之前,因为在windows上remote debug js的时候如果不写在前面似乎调试不起效果(调试的地址端口也变成了18081了)
写在最后的话,在找不到资料解决问题的时候,可以开始撸起袖子看代码了!!!
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
# ReactNative配置调试端口
# ReactNative调试端口
# React引入antd-mobile+postcss搭建移动端
# react配置webpack-bundle-analyzer项目优化踩坑记录
# antd踩坑之javascriptEnabled配置方式
# 机上
# 找不到
# 写在
# 设置成
# 我在
# 就在
# 不出来
# 上了
# 是这样
# 只需
# 是从
# 要在
# 一遍
# 这段
# 就行
# 用了
# 跑了
# 自定义
# 解决问题
# 在前面
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
Laravel如何实现多语言支持_Laravel本地化与国际化(i18n)配置教程
Laravel如何使用Guzzle调用外部接口_Laravel发起HTTP请求与JSON数据解析【详解】
HTML透明颜色代码怎么让图片透明_给img元素加透明色的技巧【方法】
Gemini手机端怎么发图片_Gemini手机端发图方法【步骤】
网站制作报价单模板图片,小松挖机官方网站报价?
Android自定义控件实现温度旋转按钮效果
javascript中的try catch异常捕获机制用法分析
Thinkphp 中 distinct 的用法解析
ChatGPT怎么生成Excel公式_ChatGPT公式生成方法【指南】
高防服务器租用指南:配置选择与快速部署攻略
iOS发送验证码倒计时应用
网站制作怎么样才能赚钱,用自己的电脑做服务器架设网站有什么利弊,能赚钱吗?
Laravel数据库迁移怎么用_Laravel Migration管理数据库结构的正确姿势
绝密ChatGPT指令:手把手教你生成HR无法拒绝的求职信
香港网站服务器数量如何影响SEO优化效果?
HTML5空格和margin有啥区别_空格与外边距的使用场景【说明】
Linux虚拟化技术教程_KVMQEMU虚拟机安装与调优
如何在云虚拟主机上快速搭建个人网站?
Laravel怎么实现支付功能_Laravel集成支付宝微信支付
Laravel如何使用集合(Collections)进行数据处理_Laravel Collection常用方法与技巧
Laravel如何与Inertia.js和Vue/React构建现代单页应用
在Oracle关闭情况下如何修改spfile的参数
通义万相免费版怎么用_通义万相免费版使用方法详细指南【教程】
如何快速重置建站主机并恢复默认配置?
专业型网站制作公司有哪些,我设计专业的,谁给推荐几个设计师兼职类的网站?
网站制作公司哪里好做,成都网站制作公司哪家做得比较好,更正规?
如何用PHP快速搭建高效网站?分步指南
百度浏览器网页无法复制文字怎么办 百度浏览器复制修复
浅述节点的创建及常见功能的实现
js实现点击每个li节点,都弹出其文本值及修改
Python图片处理进阶教程_Pillow滤镜与图像增强
如何在HTML表单中获取用户输入并用JavaScript动态控制复利计算循环
免费网站制作appp,免费制作app哪个平台好?
千问怎样用提示词获取健康建议_千问健康类提示词注意事项【指南】
Laravel怎么使用artisan命令缓存配置和视图
如何用wdcp快速搭建高效网站?
怎么用AI帮你为初创公司进行市场定位分析?
Laravel如何实现数据库事务?(DB Facade示例)
Laravel Eloquent性能优化技巧_Laravel N+1查询问题解决
详解CentOS6.5 安装 MySQL5.1.71的方法
Win11怎么关闭资讯和兴趣_Windows11任务栏设置隐藏小组件
Laravel如何使用Spatie Media Library_Laravel图片上传管理与缩略图生成【步骤】
laravel服务容器和依赖注入怎么理解_laravel服务容器与依赖注入解析
JS中页面与页面之间超链接跳转中文乱码问题的解决办法
Laravel如何实现多级无限分类_Laravel递归模型关联与树状数据输出【方法】
如何自定义建站之星模板颜色并下载新样式?
今日头条微视频如何找选题 今日头条微视频找选题技巧【指南】
如何在阿里云部署织梦网站?
HTML透明颜色代码在Angular里怎么设置_Angular透明颜色使用指南【详解】
PHP的CURL方法curl_setopt()函数案例介绍(抓取网页,POST数据)

