2016-12-24 89 views
2

Listen有着建立在我的Windows机器本地做出反应,它不断给我跑反应母语开始时,此消息:阵营机错误打包程序无法在端口8081

错误打包不能监听端口8081

好了,我改变它每指令:

反应本土开始--port = 8088

这个伟大的工程和I R eceive这样的:

[12/24/2016, 10:03:33 AM]   HMR Server listening on /hot 
React packager ready. 
[12/24/2016, 10:03:41 AM] <START> Initializing Packager 
[12/24/2016, 10:03:41 AM] <START> Building in-memory fs for JavaScript 
[12/24/2016, 10:03:41 AM] <END> Building in-memory fs for JavaScript (103ms) 
[12/24/2016, 10:03:41 AM] <START> Building Haste Map 
[12/24/2016, 10:03:41 AM] <END> Building Haste Map (64ms) 
[12/24/2016, 10:03:41 AM] <END> Initializing Packager (221ms) 

因此,作为指示我,然后运行这个命令:

C:\ ReactProjects \ AwesomeProject>反应本地运行的Android

而得到这样的:

JS server not recognized, continuing with build... 
Running C:\Users\<user>\AppData\Local\Android\sdk/platform-tools/adb -s emulator-5554 reverse tcp:8081 tcp:8081 
Building and installing the app on the device (cd android && gradlew.bat installDebug)... 
JS server not recognized, continuing with build... 
Running C:\Users\<user>\AppData\Local\Android\sdk/platform-tools/adb -s emulator-5554 reverse tcp:8081 tcp:8081 
Building and installing the app on the device (cd android && gradlew.bat installDebug)... 
. 
. 
. 
BUILD SUCCESSFUL 
Total time: 19.304 secs 
Starting the app on emulator-5554 (C:\Users\<user>\AppData\Local\Android\sdk/platform-tools/adb -s emulator-5554 shell am start -n com.awesomeproject/.MainActivity)... 
Starting: Intent { cmp=com.awesomeproject/.MainActivity } 

不幸的是仿真器给我:

“Could not get BachedBridge, make sure your bundle is packaged correctly” 

因此,有表示国家必须更改模拟器上的端口的说明,但我使用运行MARSHMELLOW了Nexus 5,不能找到该设置:

 You will also need to update your applications to load the JavaScript bundle 
    from the new port. Open the in-app Developer menu, then go to Dev Settings → Debug 
server host for device and replace 8081 with your port of choice. 

人有如何设置一个想法模拟器识别包装商?

+0

由sumit6b解决方案从这里工作,我杀了那个过程://github.com/facebook/react-native/issues/9336 – niltoid

+1

不幸的是,我们在我们的系统上安装了迈克菲8081.所以我们需要能够设置不仅包装器的端口,而且还需要模拟器。似乎它是使用打包程序进行仿真的硬编码。似乎React的发展很糟糕。应该很简单,这是浪费时间。 – pthorsey

+0

好了毕竟我只是放弃了Android模拟器上的crapy效果。我很乐意向我的公司提出这个建议,但是React与包装工人的问题很混乱,还不够成熟。我终于用了我的Android手机,并在一天内给它打了个电话。多么浪费时间。过去曾经使用过许多不同的模拟器,而且这些开发很糟糕。现在将看到开发人员的其余部分如何构建React本机应用程序。 – pthorsey

回答

0

我正面临类似的问题,因为即使我的Windows笔记本电脑上安装了McAfee。这个问题是可以按下面的步骤固定对我来说:

1)导航到项目的根,并开始通过硬编码在server.js这个值(详情请参阅this answer

的不同端口上反应原生
react-native start 

2)现在,打开在根目录命令提示的另一个实例,运行下面的命令一前一后,(任选地可以创建具有下列命令的bat文件,然后将其放置在根目录下) 。请用适当的值替换模拟器的端口号(在我的情况下是5554)和反应原生服务器的端口号(在我的情况下是8088)。

adb -s emulator -5554 reverse tcp:8088 tcp:8088 
node node_modules/react-native/local-cli/cli.js bundle --platform android --dev true --reset-cache --entry-file index.android.js --bundle-output android/app/build/intermediates/assets/debug/index.android.bundle --assets-dest android/app/build/intermediates/res/merged/debug 
cd android && gradlew.bat installDebug 

节点命令由sumit6b

3)执行上述命令后解释的,反应本地服务器将抛出一个错误并停止,然而,apk文件将被安装在我们的AVD。该文件的名称将与我们项目的名称相同。在AVD中手动打开此文件。当应用程序打开时,我们可以通过按Ctrl + M访问开发设置。在此处,转到设备的调试服务器主机端口&,并输入localhost:8088(根据需要替换为适当的端口号),然后点击确定。现在,再次重复步骤1和2。这次反应原生服务器不会终止。关闭先前打开的应用程序,然后再次在AVD中手动打开应用程序。应该说“抓取,JS捆绑”和反应本地服务器应该这样说:“转化文件”

4)此时你的反应本地服务器和你的AVD就会同步。您可以通过在index.android.js中进行一些更改来验证这一点,然后在仿真器中轻击R。

5)如果仍然遇到任何问题,请尝试使用调试服务器主机&端口中的机器IP地址更改localhost,以获取AVD中存在的设备设置。

0

不幸的是,Rect原生错误消息不是那种用户友好的。 :(

错误“无法获取BachedBridge,确保你的包被正确包装”是指您的设备没有连接到您的系统。

基本上,当我们启动反应母语其部署的东西进入移动/模拟器,但当应用程序运行在移动/模拟器它不知道从哪里需要拉代码的东西,如资产,捆绑软件包等。

所以,我们需要告诉模拟器,老板请选择所有你的东西从blahblah服务器在blah blah端口 我们必须做你刚刚提到的问题。

公开赛在应用程序的开发者菜单,然后去开发设置→调试服务器主机设备

确定,所以我们需要做到两两件事:在模拟器

  1. 打开Developer菜单:

    开发菜单是一个模式弹出与一群喜欢,刷新选项,调试JS远程,启用实时刷新,启用热刷新,切换督察... 开发设置(这是我们感兴趣的)。 有办法做到这一点(下文提到)号码,请参阅您

    • 什么作品如果你是Mac的用户只需按CMD + M。这将打开一个弹出你
    • 如果您是一个非Mac的尝试CTRL + M
    • 对于一些按F2的人工作。 “FN + F2”
    • 如果你感到沮丧,并没有什么工作尝试在终端中运行以下命令(很明显,而模拟器上)Running on Device
    adb shell input keyevent 82 
    
  2. 设置开发设置 - >调试到设备的服务器主机和端口**

    打开Developer Menu后,导航到“Dev Settings - > Debug to server host and port for device”。

    这个地方是解决您的问题的圣杯。

    获取您的机器IP地址和端口,您已经开始反应原生(即8088)并进入此处。它看起来像“192.168.1.105:8088”。 Checkout the image link here

    单击确定并重新加载应用程序(通过按R两次或通过在开发人员菜单中单击重新加载),然后您就可以启动了。

0

您可以另一个端口上使用以下命令运行打包
反应本土开始--port = 8082

,或者您可以通过 netstat的发现过程,就是利​​用8081端口-a -b -o

netstat给你PID的进程。 HTTPS:由 的taskkill/F/PID 8081

如果使用则物理设备卸载应用程序之前运行 反应本地运行的Android