2016-12-24 93 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