Skip to content

Latest commit

 

History

History
110 lines (70 loc) · 7.75 KB

troubleshooting.md

File metadata and controls

110 lines (70 loc) · 7.75 KB
id title
troubleshooting
Алдаа олох

React Native-ын тохиргоог хийх үед түгээмэл тохиолддог асуудлууд байдаг. Хэрэв танд доорх жагсаалтанд багтаагүй ямар нэг асуудал тохиолдвол GitHub дээр тухайн асуудлаа хайгаад үзээрэй.

Портыг аль хэдийн ашиглаж байна

React Native нь 8081 порт дээр ажилладаг. Хэрэв өөр нэг нь уг портыг ашиглаж байвал та зогсоох эсвэл портоо солих арга хэмжээ авч болно.

Порт 8081-г ашиглаж байгааг болиулах

Порт 8081-г ашиглаж байгаа үйлдлийн id-ыг олохын тулд доорх командыг өгнө:

$ sudo lsof -i :8081

Тэгээд доорхыг ашиглан уг процессыг зогсооно:

$ kill -9 <PID>

Windows дээр та Resource Monitor ашиглан порт 8081 дээр үйлдлийг олох боломжтой ба Task Manager ашиглан зогсоож болно.

8081-ээс өөр порт ашиглах

Та 8081-ээс өөр порт ашиглахдаа port параметр ашиглана:

$ react-native start --port=8088

Шинээр сонгосон портноосоо Javascript багцаа ачаалахын тулд аппликейшнээ шинэчлэх шаардлагатай. Хэрвээ та Xcode-оос төхөөрөмж дээр ажиллуулж байгаа бол node_modules/react-native/React/React.xcodeproj/project.pbxproj файл доторх 8081 гэснийг сонгосон портныхоороо болгож өөрчлөх шаардлагатай болно.

NPM түгжих алдаа

Хэрэв React Native CLI ашиглаж байх үед npm WARN locking Error: EACCES гэх мэт алдаа гарвал доорхыг ажиллуулаад үзээрэй:

sudo chown -R $USER ~/.npm
sudo chown -R $USER /usr/local/lib/node_modules

React-ын сан олдохгүй байх

Та төсөлдөө React Native-ыг дараа нь нэмсэн бол RCTText.xcodeproj, RCTImage.xcodeproj гэх мэт өөрийн ашиглаж буй холбогдох хамаарлуудыг нэмсэн эсэхээ шалгаарай. Эдгээрээс үүссэн binary-ууд нь таны аппын binary хэсэгтэй холбогдсон байх шаардлагатай. Xcode тохиргоо хэсэг дээрх Linked Frameworks and Binaries хэсгийг ашиглана уу. Нарийвчилсан зааврыг харах бол: Сан холбох.

Хэрэв та CocoaPods ашиглаж байгаа бол React-ыг дэд -тай хамт Podfile-д нэмсэн эсэхээ нягтлаарай. Жишээ нь, та <Text />, <Image /> болон fetch() API ашиглаж байгаа бол Podfile.` дээрээ эдгээрийг нэмээрэй:

pod 'React', :path => '../node_modules/react-native', :subspecs => [
  'RCTText',
  'RCTImage',
  'RCTNetwork',
  'RCTWebSocket',
]

Дараа нь React суулгасан төсөлдөө pod install-ыг өгч, Pods/ үүсгэсэн эсэхээ шалгаарай. CocoaPods нь .xcworkspace файлыг хэрхэн ашиглах зааврыг өгөх ба суулгасан хамаарлыг ашиглах боломжтой болох юм.

CocoaPod ашиглаж байгаа тохиолдолд React Native хөрвүүлдэггүй

cocoapods-fix-react-native нэртэй CocoaPods plugin байдаг ба энэ нь хамаарлыг зохицуулахаас үүдэлтэй харилцан ялгаатай ажиллагааны улмаас эх кодыг дараа нь засахад тусалдаг.

Аргумент жагсаалт хэт урт байна: толгойн өргөтгөл дахин хийх нь амжилтгүй боллоо

Төслийн Build Settings дотор User Search Header Paths болон Header Search Paths нар нь Xcode хаанаас тухайн кодод дурдсан толгой файлуудыг #import хийх вэ гэдгийг зааж өгдөг. Pods-ын хувьд CocoaPods нь хайх фолдеруудыг заасан цаанаас байдаг массивыг ашигладаг. Энэхүү тохиргоо нь алдагдаагүй эсэхийг шалгаарай. Тохиргоо хийсэн фолдеруудын аль нь ч хэмжээний хувьд хэт том биш эсэхийг нягтлаарай. Хэрэв нэг фолдер нь хэт том байх юм бол Xcode нь бүхэлд нь дахин хайлт хийх гэж оролддог ба дээрх алдааг өгөөд байдаг.

User Search Header Paths, Header Search Paths хоёрын тохиргоог CocoaPods-ын тохируулсан анхны хэлбэрт шилжүүлэхийн тулд Build Settings дотор оруулсан зүйлийг сонгоод устгах гэснийг дарна. Ингэснээр оруулсан өөрчлөлтийг арилгах ба CocoaPod анхны хэлбэртээ шилжинэ.

No transports available

React Native нь WebSockets-т polyfill ашигладаг. Эдгээр polyfill нь react-native модулийн нэг хэсэг болж эхэлдэг ба import React from 'react' ашиглан аппликейшндаа оруулдаг. Хэрэв Firebase гэх мэт WebSockets шаардах өөр модуль та ачаалах бол 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

android/build.gradle дотор Gradle хувилбарыг 1.2.3 болгож бууруулаад үзээрэй.

react-native init hangs

Хэрэв та системдээ react-native init ажиллуулах үед алдаа гарвал #2797 гэснийг харан verbose mode дээр дахин ажиллуулах гээд үзээрэй:

react-native init --verbose

React-native package manager-ыг ажиллуулж эхлэх боломжгүй(Linux дээр)

Кэйс 1: Алдаа "код":"ENOSPC","errno":"ENOSPC"

Хэд хэдэн директороос шалтгаалан үүсгэн алдаагinotify (Linux дээр watchman ашигладаг) хянах боломжтой. Үүнийг шийдэхийн тулд терминал дээрээ уг командыг өгнө.

echo fs.inotify.max_user_watches=582222 | sudo tee -a /etc/sysctl.conf && sudo sysctl -p