Sistem: Windows 10
Benim sorunum: Genymotion'u özel SDK'yı gösterecek şekilde ayarlamanın bir etkisi yoktu. Hala aldım:
Android'de proje başlatılamadı: smartsocket dinleyicisi yüklenemedi: 127.0.0.1:5037'ye bağlanamıyor: Normalde her soket adresinin (protokol / ağ adresi / bağlantı noktası) yalnızca bir kullanımına izin verilir. (10048) ADB Sunucusundan ok okunamadı * arka plan programı başlatılamadı * hatası: arka plan programına bağlanamıyor
Bulduğum şey, sistem genelinde kullanılan ADB sürümlerinde bir fark vardı. İşte onları bulmak için kullandığım komut:
where /r C:\ adb.exe
Bu sonuçlar üretti:
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
Her bir dizine gitme ve çalıştırma:
adb.exe version
Expo'nun ADB sürümünü çalıştırdığını görmeme izin ver:
Android Debug Bridge version 1.0.36
Revision fd9e4d07b0f5-android
Özel SDK'yı kullanan Genymotion sürümüne sahipken (c: \ Users \ kyle \ AppData \ Local \ Android \ Sdk \ platform-tools \ adb.exe):
Android Debug Bridge version 1.0.39
Revision 3db08f2c6889-android
Bir test olarak adb dosyalarını (adb.exe, AdbWinApi.dll, AdbWinUsbApi.dll)
c:\Users\kyle\AppData\Local\Android\Sdk\platform-tools\adb.exe
ve bir yedekleme klasörüne yerleştirdiler. Daha sonra adresinde bulunan adb dosyalarını taşıdım
c:\Program Files\Expo XDE\resources\app\node_modules\xdl\binaries\windows\adb\adb.exe
aynı yere. Adb ile birlikte öldürdüm:
adb kill-server
Bu, Genymotion cihazımın zaten çalışıyor olması nedeniyle adb sunucusunun otomatik olarak yeniden başlatılmasına neden oldu. Expo XDE'nin içindeki "Yeniden Başlat" düğmesine bastım ve hemen çalışmaya başladı. İşte 1:13:04 am yeniden başlatma düğmesine basın günlük:
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).
Sonuç: Genymotion ve Expo'nun aynı adb sürümünü kullanması gerekebilir, böylece Expo simüle edilen cihazla düzgün iletişim kurabilir. Android SDK konumunuza Genymotion'i işaret etmenin yanı sıra Expo XDE'nin aynı sürüme sahip olmasını sağlamak cihazlar arasında doğru iletişime izin verecektir. Expo XDE sürümünü SDK konumuna taşıdım, ancak başka bir yolla gidebilirsiniz (sdk ADB dosyalarını alıp Expo XDE kaynak konumuna yerleştirebilirsiniz).
PS Ben tüm bu sorunla ilgili stackoverflow mesajlar aracılığıyla oldum. Sadece görev yöneticim adb.exe çalışan üç örnek gösterir biliyorum. Eğer herhangi birini öldürürsen geri gelirler.
Umarım bu yardımcı olur / şerefe