2015-09-23 41 views
3

我使用的反應 - 原生Android演示項目AwesomeProject和在項目中我執行:如何修改IP和端口使用react-native Android?

react-native start 

在第二終端:

react-native run-android 

要啓動網絡服務器和安裝Android APK。默認的web服務器配置是localhost:8081,我如何修改web服務器端口,以及如何更新Android項目中IP &端口的記錄。

編輯:

我剛剛發現,可以在Android的調試設置修改IP地址,似乎「getDebugServerHost」是一個私人API,並提供Facebook的任何API更改IP &端口?

回答

1

不幸的是,該港口目前是(2015/09/23)硬編碼。我相信這會隨着時間的推移而改變,因爲這個項目的高層貢獻者已經提出了一個問題。 https://github.com/facebook/react-native/issues/2704

+1

謝謝。我們現在只是可以通過修改debug_http_host SharedPreferences值來修改url而不是端口。 –

+0

進一步更新:現在也可以使用debug_http_host更改端口。 – Tomty

+0

@Tomty請您多給點一點關於如何或在何處使用debug_http_host? – bozzmob

2

由於OP上MossP的answer評論,但是現在可以使用debug_http_host共享偏好來實現(見this問題)。

所以,如果你想使用,比如說,端口8082,您可以添加一個onCreate方法您MainActivity.java文件,這可能會是這個樣子:

@Override 
protected void onCreate(Bundle state){ 
    super.onCreate(state); 

    SharedPreferences preferences = 
     PreferenceManager.getDefaultSharedPreferences(getApplicationContext()); 
    preferences.edit().putString("debug_http_host", "localhost:8082").apply(); 
} 

當然不會忘記導入android.content.SharedPreferencesandroid.os.Bundleandroid.preference.PreferenceManager

這將使您的應用程序試圖在需要的端口而不是8081

訪問打包然後,你只要確保有--port 8082(如描述here)開始打包,你應該可以了,好了。 (除非你碰巧使用核素,這是整個其他story)。

需要注意的是,直到陣營本土0.46,這將只允許成功一個運行的應用程序,但仍然沒有使人們有可能實際上是一個非標準的端口上附加一個調試。截至React Native 0.46,附加一個調試器should also work

+0

這並不是特別要求的,所以我不想在答案本身中引用它,但是還要注意,甚至可以使用gradle的buildConfigField在構建時配置該端口,儘管這可能會變得更復雜一些。 – Tomty

+0

我認爲可以接受的是答案中包含這樣的旁註,即使他們沒有回答特別提出的問題。但當然,答案應該回答什麼是特別要求和添加最好的,這很好 – Mzn

+0

當你的目標Android設備沒有一個正常的菜單按鈕時,這很有用。 –

1

有一個小的解決方法。任何在物理設備(或其他)上運行此操作的人都可以使用其他端口重新啓動其adb會話。

例如。

react-native start --port=1234 

在不同的cmd /終端窗口上。

react-native run-android 

之後,我收到了這些消息。

BUILD SUCCESSFUL 

Total time: 22.589 secs 
Running C:\SDK/platform-tools/adb -s VY0025160560725694 reverse tcp:8081 
tcp:8081 

這會在McAfee的默認反向端口8081上運行。

解決方法:

adb reverse tcp:8081 tcp:1234 

試試吧。這個對我有用。

注意:您可能必須殺死並重新打開該應用程序。

目前我無法提供一個模擬設備的答案,因爲我沒有在我的系統上安裝一個。但是這個語義應該是相似的。

注意:這可以使用守望打破自動代碼更新。

相關問題