ระบบ: Windows 10
ปัญหาของฉัน:การตั้งค่า Genymotion ให้ชี้ไปที่ SDK ที่กำหนดเองไม่มีผลกระทบใด ๆ ฉันยังคงได้รับ:
ไม่สามารถเริ่มโปรเจ็กต์บน Android: ไม่สามารถติดตั้งตัวรับฟัง smartsocket: ไม่สามารถผูกกับ 127.0.0.1:5037: อนุญาตให้ใช้ที่อยู่ซ็อกเก็ตแต่ละอันได้เพียงครั้งเดียวเท่านั้น (โปรโตคอล / ที่อยู่เครือข่าย / พอร์ต) (10048) ไม่สามารถอ่าน ok จาก ADB Server * ล้มเหลวในการเริ่ม daemon * ข้อผิดพลาด: ไม่สามารถเชื่อมต่อกับ daemon
สิ่งที่ฉันค้นพบคือมีความแตกต่างในเวอร์ชัน ADB ที่ใช้ทั่วทั้งระบบ นี่คือคำสั่งที่ฉันใช้เพื่อค้นหา:
where /r C:\ adb.exe
สิ่งนี้สร้างผลลัพธ์:
C:\Program Files\Expo XDE\resources\app\node_modules\xdl\binaries\windows\adb\adb.exe
C:\Program Files\Genymobile\Genymotion\tools\adb.exe
C:\Users\kyle\AppData\Local\Android\Sdk\platform-tools\adb.exe
C:\Users\kyle\AppData\Local\Android\Sdk\platform-tools\adb backup\adb.exe
การนำทางไปยังแต่ละไดเรกทอรีและเรียกใช้:
adb.exe version
ให้ฉันเห็นว่า Expo กำลังเรียกใช้รุ่น ADB:
Android Debug Bridge version 1.0.36
Revision fd9e4d07b0f5-android
ขณะที่ Genymotion ที่ใช้ SDK ที่กำหนดเองมีเวอร์ชัน (c: \ Users \ kyle \ AppData \ Local \ Android \ Sdk \ platform-tools \ adb.exe):
Android Debug Bridge version 1.0.39
Revision 3db08f2c6889-android
จากการทดสอบฉันใช้ไฟล์ adb (adb.exe, AdbWinApi.dll, AdbWinUsbApi.dll) จาก
c:\Users\kyle\AppData\Local\Android\Sdk\platform-tools\adb.exe
และวางลงในโฟลเดอร์สำรอง ฉันย้ายไฟล์ adb ที่อยู่ที่
c:\Program Files\Expo XDE\resources\app\node_modules\xdl\binaries\windows\adb\adb.exe
ในตำแหน่งเดียวกัน ฉันฆ่า adb ด้วย:
adb kill-server
ซึ่งทำให้รีสตาร์ทเซิร์ฟเวอร์ adb โดยอัตโนมัติเนื่องจากอุปกรณ์ Genymotion ของฉันทำงานอยู่ ฉันกดปุ่ม "เริ่มต้นใหม่" ภายใน Expo XDE และเริ่มทำงานทันที นี่คือบันทึกที่ฉันกดปุ่มรีสตาร์ทเวลา 1:13:04 น.:
12:45:53 AM
could not install *smartsocket* listener: cannot bind to 127.0.0.1:5037: Only one usage of each socket address (protocol/network address/port) is normally permitted. (10048)
could not read ok from ADB Server
* failed to start daemon *
error: cannot connect to daemon
1:13:04 AM
Restarting project and clearing packager cache (Hold shift while clicking restart to avoid clearing cache).
1:13:11 AM
Starting React Native packager...
1:13:17 AM
Scanning 543 folders for symlinks in C:\Users\kyle\git\betalog\node_modules (49ms)
1:13:17 AM
1:13:19 AM
Couldn't adb reverse: closed
1:13:20 AM
Project opened! You can now use the "Share" or "Device" buttons to view your project.
1:13:26 AM
Couldn't adb reverse: closed
1:13:26 AM
Downloading latest version of Expo
1:13:28 AM
Installing Expo on device
1:13:33 AM
Opening on Android device
1:13:56 AM
Building JavaScript bundle: finished in 59643ms.
1:14:01 AM
Dependency graph loaded.
1:14:03 AM
Your JavaScript transform cache is empty, rebuilding (this may take a minute).
สรุป: Genymotion และ Expo อาจต้องใช้ adb รุ่นเดียวกันเพื่อให้ Expo สามารถสื่อสารกับอุปกรณ์จำลองได้อย่างเหมาะสม การชี้จีโนมไปยังตำแหน่ง SDK Android ของคุณและมั่นใจว่า Expo XDE มีเวอร์ชันเดียวกันนั้นจะอนุญาตการสื่อสารที่ถูกต้องระหว่างอุปกรณ์ ฉันย้ายรุ่น Expo XDE ไปยังตำแหน่ง SDK แต่คุณอาจไปทางอื่นได้ (นำไฟล์ sdk ADB และวางไว้ในตำแหน่งทรัพยากร Expo XDE)
ป.ล.ฉันได้รับทั้งหมดผ่านโพสต์ stackoverflow ที่เกี่ยวข้องกับปัญหานี้ เพื่อให้พวกคุณรู้ว่าตัวจัดการงานของฉันแสดง adb.exe สามอินสแตนซ์ที่ทำงานอยู่ หากคุณฆ่าพวกเขาพวกเขาจะกลับมา
หวังว่านี่จะช่วย / ไชโย