【React Native】文件翻譯閱讀紀錄 - 指南 - 故障排除

by - 上午9:00


Facebook Open Source React Native


故障排除

這些是您在設置React Native時可能遇到的一些常見問題。如果您遇到此處未列出的內容,請嘗試在GitHub中搜索問題。

通訊端口使用中


React Native打包程序在端口8081上運行。如果另一個進程已在使用該端口,則可以終止該進程,或更改打包程序使用的端口。

在端口8081上終止進程

運行以下命令以查找正在偵聽端口8081的進程的id:
$ sudo lsof -i :8081
然後運行以下命令以終止進程:
$ kill -9 <PID>
在Windows上,您可以使用資源監視器使用端口8081找到該過程,並使用任務管理器將其停止。

使用8081以外的端口

您可以使用port參數將打包程序配置為使用8081以外的端口:
$ react-native start --port=8088
您還需要更新應用程序以從新端口加載JavaScript包。如果從Xcode在設備上運行,您可以通過在 node_modules/react-native/React/React.xcodeproj/project.pbxproj 文件中將8081的出現更新到您選擇的端口來完成此操作。

NPM 鎖定錯誤

如果您在使用React Native CLI時遇到錯誤,例如npm WARN鎖定錯誤:EACCES,請嘗試運行以下命令:
sudo chown -R $USER ~/.npm
sudo chown -R $USER /usr/local/lib/node_modules

缺少React的庫

如果您手動將React Native添加到項目中,請確保已包含所有相關的依賴項,例如RCTText.xcodeproj,RCTImage.xcodeproj。接下來,由這些依賴項構建的二進製文件必須鏈接到您的應用程序二進製文件。使用 Xcode 項目設置中的 Linked Frameworks 和 Binaries 部分。更詳細的步驟如下:鏈接庫。

如果您正在使用 CocoaPods,請驗證您是否已將 React 以及子規則添加到 Podfile。例如,如果您使用的是<Text />,<Image />和 fetch() API,則需要在 Podfile 中添加這些API:
pod 'React', :path => '../node_modules/react-native', :subspecs => [
  'RCTText',
  'RCTImage',
  'RCTNetwork',
  'RCTWebSocket',
]
接下來,確保已運行pod install,並且已在安裝了React的項目中創建了Pods /目錄。 CocoaPods將指示您使用生成的.xcworkspace文件,以便能夠使用這些已安裝的依賴項。

當用作CocoaPod時,React Native不會編譯

有一個名為cocoapods-fix-react-native的CocoaPods插件,它可以處理源代碼的任何潛在的後期修復,因為使用依賴項管理器時存在差異。

參數列表太長:遞歸標頭擴展失敗

在項目的構建設置中,用戶搜索標題路徑和標題搜索路徑是兩個配置,指定Xcode應在哪裡查找代碼中指定的#import頭文件。對於Pod,CocoaPods使用特定文件夾的默認數組來查看。驗證是否未覆蓋此特定配置,並且沒有配置的文件夾太大。如果其中一個文件夾是一個大文件夾,Xcode將嘗試遞歸搜索整個目錄並在某些時候拋出上述錯誤。

要將用戶搜索標題路徑和標題搜索路徑構建設置恢復為CocoaPods設置的默認值,請在“生成設置”面板中選擇該條目,然後單擊“刪除”。它將刪除自定義覆蓋並返回到CocoaPod默認值。

沒有可用的通訊

React Native為WebSockets實現了一個polyfill。這些polyfill初始化為您通過從'react'導入React包含在應用程序中的react-native模塊的一部分。如果您加載另一個需要WebSockets的模塊,例如Firebase,請確保在react-native之後加載/要求它:
import React from 'react';
import Firebase from 'firebase';

Shell命令無響應異常

如果遇到ShellCommandUnresponsiveException異常,例如:
Execution failed for task ':app:installDebug'.
  com.android.builder.testing.api.DeviceException: com.android.ddmlib.ShellCommandUnresponsiveException 
嘗試將您的Gradle版本降級為 android/build.gradle.

react-native 掛起

如果遇到運行react-native init在系統中掛起的問題,請嘗試在詳細模式下再次運行它並參考 #2797 了解常見原因:
react-native init --verbose

無法啟動react-native軟件包管理器(在Linux上)

Case 1: Error "code":"ENOSPC","errno":"ENOSPC"

由inotify目錄(由Linux上的watchman使用)引起的問題可以監視。要解決此問題,只需在終端窗口中運行此命令即可
echo fs.inotify.max_user_watches=582222 | sudo tee -a /etc/sysctl.conf && sudo sysctl -p




You May Also Like

0 意見