Uzaktan hata ayıklayıcı ile bağlantı kurulamıyor


149

React.JS kullanıyorum ve react-native run-android(cihazım takılıyken) boş bir sayfa görüyorum. Cihazı salladığımda ve Debug JS Remotelyseçenek listesinden seçim yaptığımda aşağıdaki ekranı görüyorum.

resim açıklamasını buraya girin

Bilginize:

OS: Ubuntu 16.04
Node version is: v4.6.2
java version "1.8.0_111"
react": "15.4.1
react-native": "0.38.0

1
Android'de react-native startsunucuyu başlatmak için ayrı bir pencerede çalıştırmanız gerekir .
Aleksandar Popovic

Bunu değiştirmeye ne dersiniz: compile "com.facebook.react:react-native:+"derleme bölümünde.
Şeytan Pandeya

dev menüsünde "hata ayıklama" özelliğini etkinleştirmelisiniz
UA_

Yanıtlar:


280

Benim durumumda, sorun öykünücünün:

http://10.0.2.2:8081/debugger-ui

onun yerine:

http://localhost:8081/debugger-ui ve istek başarısız oldu.

Sorunu çözmek için: Öykünücünüzde uzaktan hata ayıklamayı etkinleştirmeden önce kromda açın http://localhost:8081/debugger-ui. Ardından uzaktan hata ayıklamayı etkinleştirin ve konsol günlüklerinizi görmeniz gereken krom sayfasına dönün.


1
benim için çalıştı - teşekkürler! önce krom sekmesini açmak zorunda kalmamak için her zaman localhost'a bağlanmaya çalışmanın bir yolunu buldunuz mu?
izikandrw

26
Öykünücünüzdeki Geliştirici Ayarları'na (Ctrl + M) gidebilir ve hata ayıklama sunucusunu 'localhost: 8081' olarak değiştirebilirsiniz.
DannyMoshe

Son paragraf benim için işe yarayan tek şeydi.
Pedro Otero

3
Teşekkür ederim. İlk etapta 10.0.2.2'ye nasıl ayarlanır?
charlieb

3
Öykünücünüzden yapılan 'localhost' istemi, PC'nizde değil, öykünücünüzdeki geri döngü bağlantı noktasına erişmeye çalışır (PC'nizin geri döngüsünü istiyorsunuz). Bunu çözmek için android, bilgisayarınızda çalışan hizmetlere erişmenizi sağlamak için 10.0.2.2 takma adını oluşturur ( doc başvurusu için developer.android.com/studio/run/emulator-networking adresine bakın ). Isteğin neden im emin değilim kadarıyla, ama tepki / android ile belgelenmiş bir sorun gibi görünüyor github.com/facebook/react-native/issues/17970 bakın .
DannyMoshe

181

Aşağıdaki sorunu çözdü:

  • Basın Cmd + MEmülatör ekranına
  • Adresine git Dev settings > Debug server host & port for device
  • Ayarlamak localhost:8081
  • Android uygulamasını tekrar çalıştırın: react-native run-android

Hata ayıklayıcı şimdi bağlandı!


CMD + M düğmesiyle ilgili bir sorun yaşayanlarınız için, adb'nin tetiklendiği kabuğun içinde './adb shell input keyevent 82' kullandım. Bundan sonra kısayol tuşları çalışmaya başladı!
Jeff L

SİZ efendim kanlı bir efsane. x
NewbieAid

Şimdi sadece uzak hata ayıklayıcıya bağlanmaya çalışıyor ... sonsuzluk için
Fakebounce

44

Yaptım adb reverse tcp:8081 tcp:8081ve sonra reloadtelefonumda çözdüm.


36

Benim durumumda, Debug JS'yi seçmek Chrome'u uzaktan başlattı, ancak android cihazla bağlantı kurmadı. Normalde, yeni Chrome sekmesi / penceresinde adres çubuğunda hata ayıklama URL'si önceden doldurulur, ancak bu durumda adres çubuğu boştur. Zaman aşımı süresinden sonra "Uzak hata ayıklayıcıya bağlanılamıyor" hata iletisi görüntülendi. Bunu aşağıdaki prosedürle düzelttim:

  • Çalıştırmak adb reverse tcp:8081 tcp:8081
  • http://localhost:8081/debugger-uiChrome tarayıcımın adres alanına yapıştırın . Normal hata ayıklama ekranını görmelisiniz, ancak uygulamanız yine de bağlı olmayacak.

Bu sorunu çözmeli. Değilse, aşağıdaki ek adımları atmanız gerekebilir:

  • Uygulamayı Android cihazınızdan kapatın ve kaldırın
  • Uygulamayı şununla yeniden yükle: react-native run-android
  • Uygulamanızda uzaktan hata ayıklamayı etkinleştirin.
  • Uygulamanız artık hata ayıklayıcıya bağlı olmalıdır.

2
Tom ... teşekkür ederim! Bundan önce ip adresimi ayarladım ("Dev Settings" -> "Aygıt için sunucu ana bilgisayarında hata ayıkla") xxxx: 8081
atreeon

11

Beni bu soruya yönlendiren benzer bir sorunum vardı. Tarayıcı hata ayıklayıcımda şu hata mesajını alıyordum:

' Http: // localhost: 8081 / index.delta? Platform = android & dev = true & minify = false ' kaynağından getirme erişimi ' http://127.0.0.1:8081 ' CORS politikası tarafından engellendi: Hayır 'Erişim Denetimi -Allow-Origin 'başlığı istenen kaynakta mevcut. Opak bir yanıt gereksinimlerinizi karşılıyorsa, kaynağı CORS devre dışı bırakılmış olarak getirmek için isteğin modunu 'korse' olarak ayarlayın.

Hata ayıklayıcı 127.0.0.1:8081yerine kullanmakta olduğumu fark etmem biraz zaman aldı localhost:8081.

Düzeltmek için Chrome'u şu şekilde değiştirmek zorunda kaldım:

http://127.0.0.1:8081/debugger-ui/

için

http://localhost:8081/debugger-ui/

1
aslında benim için tam tersiydi. Ancak gerçekte "localhost" genellikle 127.0.0.1'e eşdeğerdir. Adres için localhost olarak neyin ayarlandığına bağlıdır. Her zaman açık olmak daha iyi
Carmine Tambascia

2

Paketi sağlayacak düğüm sunucusunun arka planda çalıştığından emin olun. Çalıştırmak için sunucuyu kullanın npm startveya react-native startgeliştirme sırasında sekmeyi açık tutun


1
Hala çalışmıyor. Her iki terminal de bana geri dönmez
7

1
Charles gibi herhangi bir proxy sunucusu veya proxy yazılımı çalıştırıyor musunuz ... Varsa onları durdurun
Chethan N

Hayır, herhangi bir proxy çalıştırmıyorum
7'de splunk

2

Benim durumum, uzak JS hata ayıklamasını etkinleştir'e dokunduğumda, krom başlatacak, ancak ona bağlanamıyor.

Koşmaya çalıştım:

adb reverse tcp:8081 tcp:8081 

, ama işe yaramadı.

Kromumu tamamen kaldırdım ve yenisini taktım. Ve çalışıyor.


1
  1. reaksiyonu-yerel başlatma - bir sekmede sıfırla-önbellek ve diğerinde tepki-yerel çalıştırma-android
  2. adb reverse tcp: 8081 tcp: 8081 (böylece komut dosyalarınıza ekleyebilir ve sadece iplik çalıştırmayı çalıştırabilirsiniz adb-reverse )
  3. Android kullanıyorsanız, telefonunuzu sallamak yerine büyük bir ipucu adb komutlarını çalıştırır .

Böylece koşabilirsiniz:

  • adb kabuk girişi keyevent 82 ( menü seçeneği )
  • adb kabuk girişi keyevent 46 46 ( yeniden yükle )

1

Buradaki diğer cevaplar benim için önemli bir adımı attı. AndroidManifest.xml'de, useCleartextTraffic eklemek için gerekli:

    <application
      ...
      android:usesCleartextTraffic="true">

Güvenli olmayan http isteklerini desteklemek istemiyorsanız, muhtemelen bunu uygulamanızın üretim sürümünde tutmak istemezsiniz.

Bunu AndroidManifest.xml'e ekledikten sonra Tom Aranda'nın cevabını takip ettim ve emülatör sonunda hata ayıklayıcıya bağlanabildi.


0

@Sajib s cevap yaptım ve bağlantı noktaları yeniden yönlendirmek için bu komut dosyası kullanılır:

#!/usr/bin/env bash

# packager
adb reverse tcp:8081 tcp:8081
adb -d reverse tcp:8081 tcp:8081
adb -e reverse tcp:8081 tcp:8081

echo "🚧 React Native Packager Redirected 🚧"


0

Uzman geliştiricilere özel olarak tüm etkileyici cevapları vermek Ribamar Santos sağladığı , eğer işe yaramadıysanız, daha zor bir şey kontrol etmelisiniz!

Airplane mode(Emüle edilmiş) telefonunuz gibi bir şey ! Veya ağınızı ifade etmemek için manipüle edilebilecek network status of Emulator( Data status and Voice status on Cellular tab of Emulator configuration) cihazınız! bazı emülasyon ihtiyaçları için!

Bu hile ile bu sorunun üstesinden geldim! Bu deliği bulmak biraz nefes kesici bir hata ayıklamasıydı!


0

benim durumumda da npm paketi yüklemesi gerekiyor

yani

npm install react-native-debugger -g

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.