ReactNative踩坑之配置调试端口的解决方法


Posted in Javascript onJuly 28, 2017

本文介绍了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了)

写在最后的话,在找不到资料解决问题的时候,可以开始撸起袖子看代码了!!!

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
使用indexOf等在JavaScript的数组中进行元素查找和替换
Sep 18 Javascript
jquery+ajax实现跨域请求的方法
Jan 20 Javascript
jQuery实现鼠标滑过点击事件音效试听
Aug 31 Javascript
JQuery实现级联下拉框效果实例讲解
Sep 17 Javascript
小心!AngularJS结合RequireJS做文件合并压缩的那些坑
Jan 09 Javascript
使用Promise解决多层异步调用的简单学习心得
May 17 Javascript
AngularJS基础 ng-mousemove 指令简单示例
Aug 02 Javascript
JavaScript标准对象_动力节点Java学院整理
Jun 27 Javascript
js实现QQ面板拖拽效果(慕课网DOM事件探秘)(全)
Sep 19 Javascript
vue基于mint-ui实现城市选择三级联动
Jun 30 Javascript
Js和VUE实现跑马灯效果
May 25 Javascript
js闭包和垃圾回收机制示例详解
Mar 01 Javascript
vuejs 单文件组件.vue 文件的使用
Jul 28 #Javascript
Vue单文件组件的如何使用方式介绍
Jul 28 #Javascript
VUE axios上传图片到七牛的实例代码
Jul 28 #Javascript
jQuery dateRangePicker插件使用方法详解
Jul 28 #jQuery
完美实现js拖拽效果 return false用法详解
Jul 28 #Javascript
webpack 2的react开发配置实例代码
Jul 28 #Javascript
基于AngularJS实现表单验证功能
Jul 28 #Javascript
You might like
PHP 程序授权验证开发思路
2009/07/09 PHP
PHP程序员面试 切忌急功近利(更需要注重以后的发展)
2010/09/01 PHP
基于命令行执行带参数的php脚本并取得参数的方法
2016/01/25 PHP
php制作圆形用户头像的实例_自定义封装类源代码
2017/09/18 PHP
css图片自适应大小
2007/11/28 Javascript
javascript 写类方式之七
2009/07/05 Javascript
javascript 获取url参数和script标签中获取url参数函数代码
2010/01/22 Javascript
解决Extjs上传图片无法预览的解决方法
2012/03/22 Javascript
查询json的数据结构的8种方式简介
2014/03/10 Javascript
Markdown与Bootstrap相结合实现图片自适应属性
2016/05/04 Javascript
jQuery ui autocomplete选择列表被Bootstrap模态窗遮挡的完美解决方法
2016/09/23 Javascript
jq stop()和:is(:animated)的用法及区别(详解)
2017/02/12 Javascript
webpack学习教程之publicPath路径问题详解
2017/06/17 Javascript
jQuery实现广告条滚动效果
2017/08/22 jQuery
canvas基础绘制-绚丽倒计时的实例
2017/09/17 Javascript
Vue通过ref父子组件拿值方法
2018/09/12 Javascript
微信小程序引用iconfont图标的方法
2018/10/22 Javascript
小程序跳转H5页面的方法步骤
2020/03/06 Javascript
js+css实现扇形导航效果
2020/08/18 Javascript
vscode+gulp轻松开发小程序的完整步骤
2020/10/18 Javascript
python实现微信接口(itchat)详细介绍
2017/10/23 Python
Python读取英文文件并记录每个单词出现次数后降序输出示例
2018/06/28 Python
使用Python AIML搭建聊天机器人的方法示例
2018/07/09 Python
浅谈dataframe中更改列属性的方法
2018/07/10 Python
python GUI库图形界面开发之PyQt5访问系统剪切板QClipboard类详细使用方法与实例
2020/02/27 Python
Python使用20行代码实现微信聊天机器人
2020/06/05 Python
突袭HTML5之Javascript API扩展5—其他扩展(应用缓存/服务端消息/桌面通知)
2013/01/31 HTML / CSS
美国时尚孕妇装品牌:A Pea in the Pod
2017/07/16 全球购物
印度购买眼镜和太阳镜网站:Coolwinks
2018/09/26 全球购物
学校经典推荐信
2013/10/30 职场文书
工作证明英文模板
2014/10/21 职场文书
群众路线教育实践活动方案
2014/10/31 职场文书
2015年清明节网上祭英烈留言寄语
2015/03/04 职场文书
建筑技术负责人岗位职责
2015/04/13 职场文书
学术会议开幕词
2016/03/03 职场文书
感谢信
2019/04/11 职场文书