JANGAN HAPUS TEMPLATE INI SAMPAI ANDA TELAH MEMBACA BAGIAN PERTAMA.
Ini adalah masalah yang saya hadapi saat menjalankan Proyek Luar Biasa yang normal di sistem saya
Jika Anda menjawab "Ya": Kami berharap Anda membutuhkan waktu sekitar 30 menit untuk menghasilkan laporan bug berkualitas tinggi. Meskipun ini mungkin tampak seperti banyak, menangani masalah membantu kami memperbaikinya lebih cepat. Untuk laporan bug, WAJIB mengisi sisa template ini, atau masalah akan ditutup. Jika Anda menjawab "Tidak": Kami menggunakan Masalah GitHub secara eksklusif untuk melacak bug di React Native. Jika Anda mencari bantuan, halaman Komunitas di http://facebook.github.io/react-native/support.html mencantumkan berbagai sumber daya yang akan membantu Anda memulai. Sekarang gulir ke bawah!Ya
react-native -v
: 0.47.1node -v
:8.2.1npm -v
:4.1.2yarn --version
:Kemudian, tentukan:
(Tulis langkahmu di sini :)
1.Buka prompt perintah dalam Mode Administrator
2.jalankan perintah: cd
3.jalankan perintah: reaksi-asli init
4.jalankan perintah: cd
5.run perintah: reaksi-asli run-android
ini membuat server paket berjalan secara otomatis pada port 8081. Tetapi saya tidak dapat mengakses server paket dari browser di mesin dan ponsel.
Saya mencoba menggunakan http://
http://localhost :port
http://127.0.0.1 :port
=> Saya mendapatkan layar merah di ponsel dan emulator dengan pesan berikut:
Saya mencoba menjalankan proyek di perangkat nyata dan di emulator. Pada Keduanya saya mendapat kesalahan: "Tidak dapat memuat skrip dari aset 'index.android.bundle' Pastikan bundel Anda dikemas dengan benar atau Anda menjalankan server paket'.
memuat ulang saya mendapatkan kesalahan: "Tidak dapat terhubung ke server pengembangan."
Kemudian saya mengatur Host dan nomor port pada pengaturan pengembangan pada keduanya dan mendapatkan kesalahan "Tidak dapat terhubung ke server pengembangan."
Proyek ini diharapkan dapat berjalan di emulator dan ponsel tanpa kesalahan.
Tetapi saya malah mendapatkan kesalahan dan saya telah mencoba berkali-kali dan saya mendapatkan kesalahan yang sama berulang kali dan dalam pola yang sama.
(Tempel tautan ke proyek contoh dan instruksi yang tepat untuk mereproduksi masalah.)
Masih masalah dengan:
bereaksi 16.0.0-alpha.6
RN 0.44.3
simpul 8.2.1
npm 5.3.0
Kode X 8.3.3
Simulator iOS 10.3
Jadi apakah saya perlu mengerjakan versi sebelumnya?
Saya bertemu ini, dan tidak bisa mengatasinya ....
ada yang salah dengan versi terbaru?
Apakah pembuat paket berjalan? Anda akan melihatnya muncul ketika Anda menjalankan react-native run-android
. Anda juga dapat memulainya sendiri menggunakan react-native start
. Saya ingin mencari tahu apakah masalahnya di sini adalah bahwa pembuat paket tidak memulai sama sekali.
Ya, pembuat paket sedang berjalan. Ketika saya menjalankan perintah react-native run-Android, jendela node js terbuka menyatakan bahwa pembuat paket berjalan pada 8081 dan "Memuat Grafik Ketergantungan. Selesai"
Tetapi ketika saya mencoba " localhost:8081/index.android.js " pada browser sistem saya melihat kesalahan "Situs ini tidak dapat dijangkau".
Tetapi ketika saya membuat api nodejs normal dan mengujinya di browser, itu berhasil dibuka.
Saya memiliki masalah yang sama. Simulator iOS berfungsi dengan baik, btw
Setiap kali saya mencoba membuat proyek baru di RN, seolah-olah saya telah menabrak tembok bug baru setiap kali.
Coba bulan depan lagi, saya kira ...
masalah yang sama. ada yang menyelesaikannya?
Coba jalankan:
adb reverse tcp:8081 tcp:8081
pada prompt perintah Anda dan jalankan kembali proyek Anda setelah itu.
@ashafizullah : Saya juga sudah mencobanya; tapi masih belum beruntung.
Terjadi pada perangkat saya juga.
Saya telah menghubungkan usb, adb terbalik, dan menjalankan paket.
Saat membuka tautan berikut di browser perangkat, paket berhasil dimuat:
http://localhost:8081/index.android.bundle?platform=android&dev=true&hot=false&minify=false
Jadi saya curiga ada yang salah di dalam kode Java itu sendiri.
apakah ada solusi untuk ini? Saya juga terjebak di sini. Pada proyek IOS bekerja dengan sempurna
Saya mengalami masalah yang sama, dan itu semua karena aplikasi Android tidak memiliki izin ini:
<uses-permission android:name="android.permission.INTERNET" />
Jadi pastikan kode android Anda dapat mengakses url jarak jauh dari aplikasi Anda.
saya memiliki masalah yang sama tidak adakah yang bisa menyelesaikannya?
Saya juga menghadapi masalah yang sama, jika ada yang menemukan solusinya, silakan posting. Terima kasih.
Hai semua. Saya telah menggunakan console.dir() di react-native dan mendapatkan perilaku ini. Dan saya pikir itu normal karena console.dir() adalah fungsi browser.window dan tidak ada browser yang memiliki react-native. Setelah menghapus console.dir() - aplikasi saya telah berfungsi.
Saya menghadapi masalah yang sama di Mac, ada berita?
saya memiliki masalah yang sama dalam pengujian perangkat.
Android 4.1.2
Hai. Guys, yang memiliki versi android kurang dari 5.0, apakah Anda mencoba menggunakan koneksi wifi alih-alih usb? Aplikasi saya mulai normal di android 4.3 (Huawei mediapad T1 8.0) setelah terhubung melalui wifi
punya masalah ini, bagi saya ternyata port 8081 yang digunakan oleh postgresSQL
Saya memiliki masalah yang sama hari ini.
Android 4.4.2 dan 6.
Masalah yang sama di sini juga. Terjadi setiap kali saya membuka kembali Mac saya setelah waktu tidur yang singkat. Apakah ada yang memecahkan ini?
adb reverse tcp:8081 tcp:8081
- ini sepertinya tidak berhasil untuk saya
Kesalahan saya diselesaikan dengan mengubah batas inotify .
Tautan ini membantu https://github.com/guard/listen/wiki/Increasing-the-amount-of-inotify-watchers
sama masalah ini, bantu aku
Saya juga mengalami masalah yang sama saat mencoba menjalankannya dari localhost. Ini berfungsi di browser dan di emulator, tetapi tidak di perangkat fisik
Masalah yang sama di sini untuk Android, dari perangkat dan emulator. Sepertinya tidak dapat terhubung ke pembuat paket. Melakukan "adb reverse ..." untuk perangkat fisik. Juga berjalan pada port khusus jadi lakukan "react-native start --port 8088", lalu atur IPaddress:8088 di pengaturan dev di aplikasi.
PERTANYAAN: Apakah ada cara untuk menemukan kesalahan konektivitas antara aplikasi (di perangkat Android saya) dan pembuat paket yang berjalan di PC Windows?
PEMBARUAN: menjalankan "adb reverse --list" menunjukkan saya memiliki dua entri terbalik. Sepertinya setelah saya memperbaiki hal ini berhasil. Saya masih mendapatkan "halaman putih" saja, namun saya rasa itu masalah lain..
Masalah yang sama dengan Android, iOS berfungsi ...
bagaimana ini bisa terjadi?
saya juga mengalami masalah yang sama,
tetapi sebelumnya semuanya berfungsi dengan baik untuk saya
kemudian saya mendapatkan loop tak terbatas yang membuat desktop saya cukup lamban
jadi saya memutuskan untuk menutup emulator dan bundel metro yang saya dapatkan dari awal reaksi-asli
saya mencoba kode di bawah ini tetapi tidak berhasil sama sekali
react-native bundle --platform android --dev false --entry-file index.android.js --bundle-output android/app/src/main/assets/index.android.bundle --assets-dest android/app/src/main/res
Sedang menghadapi masalah yang sama dan menyia-nyiakan beberapa hari di belakang ini. Ternyata port default 8081 diblokir di mesin saya. Mengubah port sesuai instruksi di sini https://github.com/facebook/react-native/issues/10715 dan sekarang berfungsi.
Bisakah kalian mencoba membuka URL ini di browser web perangkat?
http://localhost:8081/index.android.bundle?platform=android&dev=true&hot=false&minify=false
@kevinresol , jika manajer paket mengatakan ini dimulai pada port 8081 dan Anda tidak dapat mengaksesnya dari browser maka kemungkinan besar port tersebut diblokir oleh firewall Anda. Coba saja ubah port default atau lihat apakah Anda dapat membuka port tersebut.
Seperti yang disebutkan dalam posting saya sebelumnya , saya dapat mengakses bundel melalui browser perangkat.
Saya mengalami masalah yang sama persis dengan @kevinresol. Saya dapat melihat bundel di browser, tetapi kesalahan tetap ada. Saya menggunakan emulator, tetapi saya masih mencoba adb reverse, tetapi tidak berhasil.
@ bruno02100 jika Anda menggunakan Windows dan mengakses Via wifi, coba dan nonaktifkan firewall Anda. Lihat apakah itu menyelesaikan masalah.
@jerrykurian Saya di Mac menjalankan emulator android. Firewall saya sudah mati. Ini benar-benar aneh.
Setelah config Debug server host & port for device
ke 192.168.x.x:8081
di Dev Settings
(Shark telepon, itu akan muncul menu)
Ini bekerja untuk saya
PS: TIDAK perlu membuat bundel apa pun secara manual, itu akan dibuat secara otomatis ketika terhubung dengan sukses
Saya pikir ada masalah wifi atau solusi wifi di luar topik. OP berbicara tentang menghubungkan ke localhost
melalui USB dengan adb reverse
Saya perhatikan bahwa kesalahan ini hanya terjadi setelah emulator menyala untuk beberapa waktu. Jadi untuk sekarang setiap kali kesalahan ini muncul, saya hanya me-restart emulator saya dan menjalankan react-native run-Android. Ini benar-benar menjengkelkan tetapi saya tidak punya banyak waktu untuk melihat ini sehingga harus dilakukan.
Saya dapat terhubung ke server pengembangan setelah membangun melalui studio Android tetapi jika saya menyegarkan kode ketika saya mengedit kode, Perangkat atau emulator saya tidak dapat terhubung ke server.
Ketergantungan saya
"bereaksi": "16.0.0",
"react-asli": "0.50.4",
Saya dapat mengonfirmasi solusi @xlebenny untuk mengatur host & port server debug secara manual pada perangkat berfungsi untuk saya pada proyek CRNA yang baru dikeluarkan.
Langkah demi Langkah untuk mengeluarkan dan menjalankan CRNA di Android
Di terminal:
create-react-native-app myApp
cd myApp
yarn run eject
(Saya menggunakan opsi default "proyek React Native biasa")react-native run-android
(sekarang aplikasi harus dikompilasi dan diinstal di telepon)
Di telepon:
index.js
" di Metro Bundler (yang dibuka saat menjalankan react-native run-android
)Muat Ulang Langsung (bila file sumber berubah) masih dimungkinkan - cukup goyangkan ponsel dan sentuh "Aktifkan Muat Ulang Langsung"
@ashafizullah dapatkah Anda menjelaskan bagaimana perintah itu menyelesaikan masalah. Terima kasih
@ plong0 menyelesaikannya untuk saya!
Seperti yang ditunjukkan oleh @bruno02100 , tampaknya kesalahan ini muncul jika perangkat dibuka untuk waktu yang lama. Menonaktifkan boot cepat di pengaturan emulator menyelesaikannya untuk saya 👍
Ketik adb shell, dan lihat apakah itu mendengarkan di server lokal Anda? mengatur ip dan port server dalam pengaturan dev. Itu harus memperbaikinya.
@ plong0 terima kasih atas bantuannya tetapi itu tidak membantu saya.
Saya tidak dapat menjalankan aplikasi saya di perangkat Android menggunakan MAC.
@rammintagizade - bagaimana cara memeriksa apakah aplikasi mendengarkan di server lokal saya? apa perintahnya:
adb shell [command]
?
Ya , adb shell dan netstat .
berdasarkan http://facebook.github.io/react-native/docs/running-on-device.html ini
akses alamat ip lokal Anda (mis: http://192.168.43.188:8081/) dari browser Anda dan pastikan itu muncul
React Native packager sedang berjalan.
Kunjungi dokumentasi
lalu akses pengaturan dev di emulator Anda:
Untuk pengguna Mac Anda dapat mengikuti langkah-langkah di bawah ini,
Langkah 1: jalankan "adb reverse tcp:8081 tcp:8081 "
Langkah 2: Tekan "perintah m"
Langkah 3: Tekan "Pengaturan Pengembang"
Langkah 4: Tekan "Debug server host & port untuk perangkat"
Langkah 5: Pada pop up masukkan "10.0.2.2:${port_id}" di bagian 'port_id' gunakan port yang Anda menjalankan aplikasi Anda.
Langkah 6: Sekarang jalankan "react-native run-Android"
jika Anda mencoba men-debug aplikasi di perangkat Android fisik Anda melalui wifi menggunakan mesin windows, maka perangkat tersebut mungkin tidak dapat mengakses port pc atau laptop Anda,
Anda harus membuat port dapat diakses. ini melibatkan dua langkah:
1.Pertama buat aturan di firewall. untuk melakukan ini ikuti langkah-langkah berikut:
```
buka dialog jalankan
-ketik wf.msc
-klik aturan masuk
-klik aturan baru di sisi kanan
-pilih port dari menu pop up dan klik next
-pilih port tcp dan port lokal tertentu dan masukkan nomor port seperti 8081 (default)
-izinkan koneksi
-pilih semua di bagian profil
-berikan beberapa nama dan deskripsi yang sesuai
-klik selesai
Anda siap melakukannya, sekarang coba jalankan react-native run-Android.
Punya masalah yang sama, meskipun kemudian saya menyadari bahwa perangkat yang saya tiru (android) tidak memiliki koneksi internet (atau jaringan) sama sekali. Itu tidak memiliki simbol WiFi atau LTE sama sekali. Memulai ulang Emulator tidak menyelesaikan masalah, tetapi memasukkannya ke mode pesawat dan mematikan mode pesawat lagi menyelesaikannya. Mungkin bug Android umum kehilangan koneksi jaringan dalam kasus saya.
Kami menghadapi masalah ini, Untuk memperbaikinya, solusinya sangat sederhana di bawah ini.
Pada dasarnya kesalahan ini memberi tahu bahwa build Anda saat ini gagal karena alasan seperti masalah Kode atau masalah ketergantungan.
Tidak yakin apa yang menyebabkan masalah saya dengan emulator Android di macOS. Mungkin menyiapkan AVD Android baru atau menginstal berbagai pembaruan Android Studio?
Perintah ini tergantung:
watchman watch-del-all
Ini memperbaiki masalah bagi saya:
````
brew uninstall penjaga
brew install watchman
watchman watch-del-all
````
Saya bisa menyelesaikan masalah ini dengan memulai ulang emulator akhirnya.
Akhirnya saya menemukan masalah saya.
Dalam kasus saya itu untuk pengaturan proxy emulator saya.
Cukup buka pengaturan emulator dan atur tanpa proxy.
Semoga bisa membantu
Halo semua,
Saya menemukan masalah yang sama saat menjalankan di lingkungan windows dan mensimulasikan menggunakan simulator Android.
Setelah melakukan beberapa trial & error, saya menemukan solusinya seperti di bawah ini:
1>> Ubah port di "node_modules\react-native\local-cliserverserver.js" dari default:
process.env.RCT_METRO_PORT || 8081
ke
default: process.env.RCT_METRO_PORT || 9088
jika port diblokir atau dikeluarkan untuk beberapa aplikasi lain.
Catatan : Anda dapat memilih nomor port apa saja, saya telah memilih 9088
2>> Jalankan perintah react-native run-android --port 9088 (Masukkan nomor port Anda di sini). Port ini akan dikirim ke adb running, sehingga server dan adb berada di port yang sama.
3>> Sekarang di simulator studio Android, tekan Ctrl+m, untuk pergi ke " Pengaturan Dev ", lalu pilih port Debug Server & host untuk Perangkat , setel " localhost:9088 ".
4>> Buka developer console di chrome menggunakan url http://localhost :9088/debugger-ui/
Sekarang itu akan mulai memuat perubahan yang Anda buat di aplikasi Anda.
Nikmati pengkodean sekarang :)
Terima kasih telah memposting ini! Sepertinya Anda mungkin tidak menggunakan React Native versi terbaru, v0.53.0, yang dirilis pada Januari 2018. Bisakah Anda memastikan masalah ini masih dapat direproduksi di versi terbaru?
Saya akan menutup ini, tetapi jangan ragu untuk membuka masalah baru jika Anda dapat mengonfirmasi bahwa ini masih menjadi masalah di v0.53.0 atau yang lebih baru.
Bagaimana Berkontribusi • Apa yang Diharapkan dari Pengelola
Ya, saya menggunakan "react-native": "0.53.0".
Tetapi masalah ini muncul, ketika saya menggunakan proxy di dalam perusahaan. Mungkin beberapa port diblokir atau digunakan oleh perusahaan. Jadi saya menggunakan cara ini untuk menyelesaikannya. Dan diposting di sini, sehingga orang lain dapat memecahkan masalah ini.
Masalah yang sama pada perangkat nyata Android .. Versi 5.1.1
Cukup buka command prompt dan pergi ke direktori proyek ketik 'yarn' dan tekan enter semuanya akan baik-baik saja
@ashafizullah solusinya berhasil!!!!
Baik itu simulator atau perangkat nyata, untuk android, cukup lakukan seperti di bawah ini:
@Alijaaan masalah yang sama yang saya alami rupanya. Terima kasih!
Satu-satunya solusi yang saya temukan adalah dari Android studio AVD Manager , hapus emulator Anda saat ini dan tambahkan yang baru. Semua mulai bekerja lagi.
Terima kasih banyak @Alijaaan
Itu menggunakan pengaturan proxy Android Studio.
Saya menghapus centang "gunakan pengaturan proxy studio Android" dan kemudian saya memilih "Tidak ada proxy". Semuanya baik-baik saja sekarang.
Komentar @esutton memecahkan masalah saya.
Penjaga BTW adalah perangkat lunak favorit saya. Saya selalu senang untuk menjeda hari saya selama beberapa jam untuk memburu masalah RN acak dan menyadari semua yang perlu saya lakukan adalah menjalankan watchman watch-del-all
. Sekarang bahkan perintah itu hang dan kami harus menginstalnya kembali sesekali, saya pengembang yang lebih bahagia.
react-native run-Android --port 9088 bekerja untuk saya. Terima kasih @Louies89
Saya menemukan solusi
1.matikan antivirus saya
2tutup firewall saya
saya pikir ini masalah dengan perubahan terbaru dalam kode, terutama jika Anda menggunakan perpustakaan pihak ketiga seperti basis asli. apa yang saya lakukan, mundur beberapa langkah Ctrl + z , hapus instalan aplikasi dari emulator dan mulai ulang. kemudian react-native run-Android , dan semuanya berfungsi! mungkin ada hubungannya dengan caching emulator
@pinchez254 setuju dengan Anda. Jalankan pertama selalu baik-baik saja.
Silakan mulai server npm dengan menggunakan perintah npm start
Halo, saya memasukkan alamat ip pc saya di Dev Setting (192.168.1.103:8081) dan membuat aturan masuk di firewall untuk mengakses port 8081 tcp, tetapi dapatkan kesalahan ini:
"could not connect to development serve"
JUGA
ketika mengetik di browser "http://localhost:8081/index.delta?platform=android&dev=true&minify=false"
, build dimulai dan berhasil diselesaikan!
Bagi saya berlari:
adb reverse tcp:8081 tcp:8081
react-native start --reset-cache
react-native run-android
melakukan triknya
Saya harus membuka dua terminal.
Lari pertama
sudo npm start
Setelah lari
react-native run-ios
react-native run-android
, react-native start --port=8088
react-native run-android --port=8081
:)
Satu-satunya cara yang berhasil saya selesaikan adalah - mencari semua referensi ke port 8081 dan mengubah ke 9088 (tidak digunakan) dan mulai dengan -- port 9088. Juga mengubah pengaturan Dev ke port 9088. Ada beberapa referensi ke port 8081 sebagai default di node_module/react-native dir. Port 8081 digunakan oleh penjaga virus di lingkungan saya.
Bagi saya, alat Platform Android tidak diinstal. Jadi saya menginstal menggunakan perintah berikut.
brew cask install android-platform-tools
Setelah itu, jalankan dari Android studio atau baris perintah dengan * react-native run android * works
Mem-boot ulang Mac saya menyelesaikannya untuk saya, tidak tahu mengapa
pertama, setelah memastikan Anda berada di file proyek Anda, solusi ini membantu saya:
react-native start
kemungkinan besar Anda akan mendapatkan kesalahan dengan kode ENOSPC
dalam hal ini, gunakan kode ini:
echo fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sysctl.conf && sudo sysctl -p
setelah itu, Anda menjalankan react-native start
lagi, dan kemungkinan besar kesalahan ENOSPC Anda telah teratasi.
selanjutnya, jalankan saja react-native run-android
begitulah, ini berfungsi untuk saya di linux dengan emulator android dari studio android
Saya mengalami kesalahan ini,
Saya menemukan solusi dengan melakukan ini.
pertama saya menghapus semua modul simpul.
sudo rm -rf node_modules/
kemudian saya menginstal paket npm lagi
npm install
kemudian saya menjalankan perintah ini untuk memeriksa paket reaksi ok.
react-native start
itu menunjukkan kepada saya bahwa paketnya ok dan kemudian saya menjalankan Android dengan root
react-native run-android --root
kemudian saya menemukan ini berfungsi.
Perhatikan juga bahwa pada Android 9, transfer HTTP (non-HTTPS) cleartext dilarang secara default. Untuk mengaktifkan koneksi ke server pengembangan dari perangkat yang menjalankan aplikasi Anda, tambahkan atribut ini ke elemen application
dalam file _AndroidManifest.xml_:
android:usesCleartextTraffic="true"
Informasi lebih lanjut tentang masalah Stackoverflow ini
Anda dapat menguji untuk melihat apakah perangkat Anda dapat mengakses server pengembangan Anda dengan mengetikkan URL ke browser web asli.
Sayangnya alat pengembangan asli yang bereaksi menelan alasan kesalahan, tetapi itu muncul jika Anda mencoba membuat koneksi HTTP Anda sendiri di dalam aplikasi target di mana Anda akan mendapatkan jejak tumpukan yang bermanfaat.
@delj Sayang sekali alat pengembangan asli yang bereaksi menelan alasan kesalahan.
Tip: Gunakan manifestPlaceholder untuk mencegah rilis dengan android:usesCleartextTraffic= "true"
AndroidManifest.xml
````
android:usesCleartextTraffic="${isDebug}"
>
````
android/app/build.gradle
tipe bangunan { debug { manifestPlaceholder = [isDebug:true] } melepaskan { manifestPlaceholder = [isDebug:false]minifyEnabled enableProguardInReleaseBuilds proguardFiles getDefaultProguardFile("proguard-android.txt"), "proguard-rules.pro" signingConfig signingConfigs.release } }
Saya memiliki masalah yang sama dan apa yang berhasil untuk saya di Windows 10 secara harfiah hanya membuka CMD sebagai Administrator.
saya masih memiliki masalah ini. Bisakah kita membuka ini kembali. Ini benar-benar konyol, bagaimana tutorial "Memulai" jika Anda mengikuti langkah-langkah pada surat itu dan tidak memulai. Saya benar-benar menghabiskan berjam-jam untuk bug ini. Facebook perlu mengatasi ini. Entah tutorial mereka hanya MURNI SALAH atau kasus pemecahan masalah terkenal yang dapat mereka tautkan.
Berikut langkah-langkah saya:
Masih memiliki masalah ini. Saya juga mencoba menambahkan nilai port ketika saya melakukan langkah 3, tetapi itu juga tidak berhasil. Adakah yang bisa tolong bantu.
Saya benar-benar bersimpati - kami hanya menghabiskan satu jam untuk memperbaiki ini juga.
Ada beberapa masalah yang terjadi di sini, yang paling penting adalah pengaturan plaintext. Sebelum Anda melakukan apa pun, perbarui aplikasi Anda ke Android SDK terbaru atau setelan ini tidak akan berfungsi. Untuk menguji apakah Anda memiliki masalah ini, tempelkan kode ini di salah satu fungsi render teratas Anda. Misal <App
fetch('http://jofarnold.com')
.then(res => res.text())
.then(d => alert('ok'))
.catch(e => {
console.error(String(e));
});
Perhatikan http
dan bukan https
. Ya, situs saya bukan http. Tapi sekarang aku tidak menyesal!
Sekarang coba
fetch('https://httpbin.org')
.then(res => res.text())
.then(d => alert('ok'))
.catch(e => {
console.error(String(e));
});
Perhatikan http .
Yang mana yang gagal? Jika keduanya gagal, Anda memiliki masalah lain dan saya tidak dapat membantu Anda - tetapi cobalah untuk melihat apakah url tersebut berfungsi di Chrome di simulator Anda untuk mengesampingkan jaringan yang tidak berfungsi. Jika yang pertama gagal (itu akan memberikan reaksi kotak merah asli) tetapi yang kedua berhasil (itu akan memperingatkan dengan ok
) maka Anda belum mengatur pengaturan keamanan Android dengan benar. Jadi mari kita lakukan itu.
Pertama masukkan berikut ini di android/.../AndroidManifest.xml di bagian <application
<manifest
....
<application
... other settings
android:usesCleartextTraffic="true" <---------- this
android:networkSecurityConfig="@xml/network_security_config" <------- and this
>
... etc
Kemudian buat file di android/...res/xml/network_security_config.xml (Anda mungkin perlu menambahkan direktori xml: nama file tidak istimewa - hanya harus sama dengan referensi di atas) seperti ini :
<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
<domain-config cleartextTrafficPermitted="true">
<domain includeSubdomains="true">jofarnold.com</domain>
</domain-config>
</network-security-config>
Kompilasi ulang memastikan Anda melakukan react-native start --reset-cache
di satu terminal (perhatikan reset-cache) dan react-native run-android
di terminal lain.
Sekarang Anda memuat aplikasi Anda akan mendapatkan popup ok. Barang bagus! Anda telah berhasil fetch
situs saya yang tidak aman.
Sekarang kita harus memilah-milah reaksi asli. Bagi saya server berada di 10.0.2.2 dan debugger di localhost atau semacamnya (saya tidak ingat; saya menulis ini sebagian dari memori). Either way mereka berbeda dan jadi itu tidak berhasil.
Untuk ini, ubah jofarnold.com
di atas menjadi localhost
dan kemudian masuk ke menu pengaturan di aplikasi (cmd-M di mac) > Pengaturan Dev. Matikan "Gunakan JS Deltas" (tidak berfungsi dengan baik) dan di bawah Debugging atur host server dan port ke localhost:8081
File konfigurasi keamanan Anda akan terlihat seperti ini:
<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
<domain-config cleartextTrafficPermitted="true">
<domain includeSubdomains="true">localhost</domain>
</domain-config>
</network-security-config>
Kompilasi ulang, mulai ulang react-native start --reset-cache
dan Anda akan mendapatkan bilah hijau di bagian atas aplikasi dengan loading...
atau apa pun itu. Di terminal Anda akan melihatnya bundling dengan Delta, Map, dan sebagainya.
Anda tidak perlu melakukan hal-hal adb reverse
menurut saya. Itu dilakukan sebagai bagian dari skrip RN.
Semoga berhasil!
Masalah saya adalah karena emulator Android saya terputus dari Wifi dan data. Saya baru saja menyalakannya dan itu berjalan. Semoga membantu jika ada yang menghadapi masalah yang sama.
Masalah saya adalah karena emulator Android saya terputus dari Wifi dan data. Saya baru saja menyalakannya dan itu berjalan. Semoga membantu jika ada yang menghadapi masalah yang sama.
Satu hal penting yang harus saya tambahkan pada komentar Mateo; jika Anda menutup MacBook dan melanjutkan di jaringan wifi lain, ini dapat menyebabkan "wifi" simulator gagal. Anda harus memulai ulang simulator. Saya tahu ini bukan masalah untuk simulator secara khusus tetapi ada SEO yang bagus untuk subjek ini jadi semoga meninggalkan komentar ini di sini akan membantu orang lain.
diselesaikan dengan menggunakan android 5.0 atau lebih tinggi, mendapat kesalahan di android 4..4
diselesaikan dengan menggunakan android 5.0 atau lebih tinggi, mendapat kesalahan di android 4..4
saya setuju
Jika Anda menjalankan emulator Android 9, Anda harus menambahkan, seperti yang dinyatakan oleh @delj , android:usesCleartextTraffic="true"
dalam tag Aplikasi Anda di manifest.xml
Apakah pembuat paket berjalan? Anda akan melihatnya muncul ketika Anda menjalankan
react-native run-android
. Anda juga dapat memulainya sendiri menggunakanreact-native start
. Saya ingin mencari tahu apakah masalahnya di sini adalah bahwa pembuat paket tidak memulai sama sekali.
Mengapa terjadi masalah ini?? Saya memiliki mac dengan OS 10.13.6 dan sebelum server mulai secara otomatis
Terima kasih @JofBigHealth Saya melakukan seperti yang Anda sarankan dan berfungsi pada emulator dan menghubungkan perangkat nyata.
Tetapi saya mengalami masalah dengan aplikasi ketika saya mengunduhnya dari saluran alfa. apakah Anda punya saran untuk men-debugnya?
@ sheva007 Saya tidak yakin apa yang Anda maksud dengan "saluran alfa". Bisakah Anda menjelaskan dan juga memasukkan lebih detail tentang masalah apa yang Anda alami secara spesifik?
@JofBigHealth maaf atas info yang hilang.
PEMBARUAN: sekarang berhasil, saya hanya perlu menunggu beberapa saat hingga Google Play membuat versi kerja yang diperbarui tersedia untuk penguji. Terima kasih banyak :)
masalah awal saya adalah aplikasi berfungsi dengan baik <Android 9 tetapi tidak akan melakukan panggilan jaringan dengan Android 9, ketika saya menggunakan solusi Anda, aplikasi termasuk panggilan jaringan berfungsi seperti yang diharapkan.
tetapi ketika saya mengirimkannya ke Google Play Alpha Channel. itu tidak membuat panggilan jaringan.
membalikkan port bekerja untuk saya
seperti yang disarankan oleh @ashafizullah
Menutup Android Studio, yang telah saya buka, anehnya memecahkan masalah bagi saya. Tidak yakin mengapa...
PEMBARUAN: untuk simulator pada peningkatan ke 0.57.7 Saya tidak merasa perlu melakukan perbaikan proxy terbalik adb
, atau mengubah port di menu pengembang. Defaultnya seperti 10.0.1.1:8080 (tebak dari memori) dan Just Works. Saya menjalankan react-native start
atau react-native start --reset-cache
(jika diperlukan) dan membangun dari Android Studio dan berfungsi dengan baik. Jika Anda telah menyetelnya ke debugging, Anda harus menjalankan debugger dan mungkin perlu membangun lagi dari Android Studio karena terkadang tidak terhubung pertama kali (karena apa yang saya duga adalah kondisi balapan) tetapi sebaliknya baik-baik saja. Ingatlah untuk mengatur pengaturan keamanan dengan benar di manifes aplikasi
Perangkat adalah masalah lain.
Memiliki masalah yang sama ketika mencoba meluncurkan di perangkat. Apakah ada solusi untuk perangkat?
Saya memiliki masalah yang sama. Tolong bantu aku.
anda harus menambahkan jalur ke variabel lingkungan Anda ... jalur "adb" Anda dapat menemukannya di lokasi C:Users\user\AppData\Local\Android\Sdk/platformtools
Ini bekerja untuk saya di Windows 10: (Setelah mengatur host & port server debug..)
Saya memeriksa pengaturan firewall saya (Windows Firewall> Izinkan aplikasi atau fitur melalui Windows Firewall) dan menemukan bahwa ada DUA aplikasi Node.js tetapi salah satunya tidak diizinkan melalui firewall! Centang kotak dan simpan lalu semuanya berfungsi sebagaimana mestinya!
pertanyaan bagus ini .. dan kerjanya.!
Jika Anda menjalankan emulator Android 9, Anda harus menambahkan, seperti yang dinyatakan oleh @delj ,
android:usesCleartextTraffic="true"
dalam tag Aplikasi Anda di manifest.xml
Direkomendasikan
Kesalahan yang sama.
windows7+android studio3.3.2.
Server node aktif dan saya dapat mengunjungi 127.0.0.1 dari simulator chrome, tetapi aplikasi Awesome tidak dapat terhubung ke server node.
Saya juga menambahkan android:usesCleartextTraffic="true"
ke AndroidManisfesto.xml, tetapi masih mendapatkan kesalahan
@aflext Apakah Anda menjalankan perintah adb reverse tcp:8081 tcp:8081
di kotak merah? Itu biasanya berhasil.
@JofBigHealth Dengan mengubah url dari 127.0.0.1:8081
menjadi localhost:8081
menyelesaikannya.
Dalam kasus saya, solusinya adalah Nonaktifkan/Aktifkan "Debug JS dari Jarak Jauh"
@ashafizullah : Saya juga sudah mencobanya; tapi masih belum beruntung.
@ashafizullah ya tidak bekerja saya juga.
apakah mungkin menjalankan proyek ini melalui windows????
Kesalahan saya diselesaikan dengan mengubah batas inotify .
Tautan ini membantu https://github.com/guard/listen/wiki/Increasing-the-amount-of-inotify-watchers
INI BEKERJA!! TERIMA KASIH BANYAK!!
Kesalahan saya diselesaikan dengan mengubah batas inotify .
Tautan ini membantu https://github.com/guard/listen/wiki/Increasing-the-amount-of-inotify-watchers
Ini berhasil untuk saya. Terima kasih sobat.
Saya menambahkan android:usesCleartextTraffic="true"
ke AndroidManifest.xml
pada tag <application ...
dan membangun kembali aplikasi. Setelah itu, mulai memuat dari server dev secara normal.
Ini terjadi pada saya karena saya menjalankan Debugger dan terhubung ke perangkat lain. Jadi simulator iOS yang terhubung ke debugger memblokir perangkat Android agar tidak terhubung ke packager. Menghentikan debugging jarak jauh pada simulator iOS memungkinkan perangkat Android terhubung, atau Anda juga dapat memulai debugging jarak jauh di perangkat Android.
Ini bekerja untuk saya di Windows 10: (Setelah mengatur host & port server debug..)
Saya memeriksa pengaturan firewall saya (Windows Firewall> Izinkan aplikasi atau fitur melalui Windows Firewall) dan menemukan bahwa ada DUA aplikasi Node.js tetapi salah satunya tidak diizinkan melalui firewall! Centang kotak dan simpan lalu semuanya berfungsi sebagaimana mestinya!
Ini adalah masalah saya juga, terima kasih!
https://www.youtube.com/watch?v=XhiE0HEiYd4
tapi.... ketika saya memuat ulang aplikasi di emulator, crash lagi dan menampilkan pesan:
TIDAK DAPAT TERHUBUNG KE SERVER PENGEMBANGAN
Jadi saya mencoba menambahkan node.js dan genymotion player.exe di firewall dan memulai ulang semua (geny, bereaksi), dan berfungsi lagi...
ctrl+Win cmd command line ipconfig untuk mencari alamat ipV4 milik saya adalah 192.168.0.111, setelah itu saya masukkan 192.168.0.111:8081
Berhasil diselesaikan!
Saya menambahkan
android:usesCleartextTraffic="true"
keAndroidManifest.xml
pada tag<application ...
dan membangun kembali aplikasi. Setelah itu, mulai memuat dari server dev secara normal.
Ini memperbaikinya. Terima kasih banyak.
Memiliki masalah yang sama hanya pada perangkat android nyata.
Larutan:
1) Tambahkan file android/app/src/main/res/xml/network_security_config.xml
<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
<domain-config cleartextTrafficPermitted="true">
<domain includeSubdomains="true">localhost</domain>
</domain-config>
</network-security-config>
2) Tambahkan baris ke Android/app/src/main/AndroidManifest.xml
<application
...
android:networkSecurityConfig="@xml/network_security_config"
...
>
Temukan obatnya.
Masalah ini membantu saya menyelesaikan masalah dalam langkah-langkah berikut.
Ini berlaku untuk Android 9.0+ menurut Konfigurasi Keamanan Jaringan .
Nah, jadi setelah mencoba semua kemungkinan solusi yang saya temukan di web, saya memutuskan untuk menyelidiki logcat Android asli secara manual. Bahkan setelah menambahkan android:usesCleartextTraffic="true"
, saya menemukan ini di logcat:
06-25 02:32:34.561 32001 32001 E unknown:ReactNative: Caused by: java.net.UnknownServiceException: CLEARTEXT communication to 192.168.29.96 not permitted by network security policy
Jadi, saya mencoba memeriksa sumber aplikasi asli reaksi saya. Saya menemukan bahwa dalam varian debug
, sudah ada konfigurasi keamanan-jaringan yang didefinisikan oleh orang-orang asli-reaksi, yang bertentangan dengan varian main
.
Ada solusi mudah untuk ini.
Pergi ke <app-src>/android/app/src/debug/res/xml/react_native_config.xml
Tambahkan baris baru dengan alamat IP Anda sendiri di
<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
<domain-config cleartextTrafficPermitted="true">
<domain includeSubdomains="false">localhost</domain>
<domain includeSubdomains="false">10.0.2.2</domain>
<domain includeSubdomains="false">10.0.3.2</domain>
***<domain includeSubdomains="false">192.168.29.96</domain>***
</domain-config>
</network-security-config>
Karena IP lokal komputer saya (periksa dari ifconfig
untuk linux) adalah 192.168.29.96, saya menambahkan baris di atas di *
Kemudian, Anda perlu membersihkan dan membangun kembali untuk Android!
cd <app-src>/android
./gradlew clean
cd <app-src>
react-native run-android
Saya harap ini berhasil untuk Anda.
Apa yang telah saya lakukan: (bekerja pada emulator Android Pie 9)
Debug server host & port for device
dengan mengklik Ctrl+M
dan Dev Setting
di emulator. Pastikan Anda mengatur Host dan port menggunakan Host dan port Bundler (default: localhost:8081
) dan pastikan port Anda tidak diblokir oleh proses lainadb reverse tcp:8081 tcp:8081
di direktori proyek rumahandroid:usesCleartextTraffic="true"
ke <application>
simpul di AndroidManifest.xml
@ Eyesonly88 ini memecahkan masalah bagi saya - terima kasih.
Untuk Anda yang menghadapi masalah ini khususnya saat menyetel targetSdkVersion Anda ke API 28.
Yang perlu Anda lakukan adalah menambahkan untuk file network_security_config Anda baris berikut di bawah ini:
<base-config cleartextTrafficPermitted="true">
<trust-anchors>
<certificates src="system" />
</trust-anchors>
</base-config>
PS: Dalam kasus saya, saya memiliki beberapa file network_security_config untuk setiap rasa, karena ini adalah masalah debug, menambahkan baris ini ke file network_security_config dalam rasa debug sudah cukup.
================================================== =========================
Info lebih lanjut tentang bug di bawah ini:
Jika kita pergi ke https://developer.android.com/training/articles/security-config.html , kita akan melihat bahwa baris kode di atas adalah konfigurasi keamanan default untuk Android API 24 hingga API 27. (Android 7.0 hingga Android 8.1).
Ini berarti bahwa untuk Android 9, API 28, yang merupakan kesalahan yang saya hadapi, konfigurasi defaultnya berubah.
Lebih khusus lagi, konfigurasi default untuk Android API 28 adalah:
<base-config cleartextTrafficPermitted="false">
<trust-anchors>
<certificates src="system" />
</trust-anchors>
</base-config>
.
Inilah sebabnya mengapa menggunakan konfigurasi default untuk API lama berhasil untuk saya.
Hal lain yang juga berhasil bagi saya pada awalnya adalah menyetel targetSdkVersion ke api 27. Jika Anda tidak ingin menjalankan API 28, ini mungkin juga berhasil untuk Anda.
Jika Anda menjalankan emulator Android 9, Anda harus menambahkan, seperti yang dinyatakan oleh @delj ,
android:usesCleartextTraffic="true"
dalam tag Aplikasi Anda di manifest.xmlDirekomendasikan
Anda menghemat waktu saya. Terima kasih banyak.
Teman-teman buka wifi di emulator dan itu berhasil untuk saya
apa yang memecahkan masalah saya adalah menggunakan sudo yarn start
alih-alih yarn start
Saya memiliki skrip di package.json saya dengan
{
...
"scripts":{
"start":"react-native start"
}
....
}
Jika Anda menggunakan emulator seperti xCode atau Android Studio, Anda tidak perlu mengatur alamat server dev di pengaturan dengan IP Anda. Ini akan diatur secara otomatis. Hapus saja dan jalankan kembali aplikasi. Ini bekerja untuk saya.
Jika Anda menjalankan emulator Android 9, Anda harus menambahkan, seperti yang dinyatakan oleh @delj ,
android:usesCleartextTraffic="true"
dalam tag Aplikasi Anda di manifest.xmlDirekomendasikan
Anda menyelamatkan hari saya
Apa yang telah saya lakukan: (bekerja pada emulator Android Pie 9)
- Atur IP dan port pada
Debug server host & port for device
dengan mengklikCtrl+M
danDev Setting
di emulator. Pastikan Anda mengatur Host dan port menggunakan Host dan port Bundler (default:localhost:8081
) dan pastikan port Anda tidak diblokir oleh proses lain- Jalankan
adb reverse tcp:8081 tcp:8081
di direktori proyek rumah- Tambahkan
android:usesCleartextTraffic="true"
ke<application>
simpul diAndroidManifest.xml
- Setelah menyelesaikan tiga poin di atas, mulai ulang proyek Anda
Saya dapat mengonfirmasi bahwa solusi @rafidamr adalah solusi yang tepat. Tetapi saya berada di lingkungan perusahaan di mana saya tidak dapat menggunakan port 8081, jadi saya hanya mengganti Metro Bundler ke port lain seperti:
adb reverse tcp:8088 tcp:8088
react-native run-android --port 8088
Dan tentu saja, menunjuk ke port baru di Pengaturan Dev emulator.
Terima kasih @camposbrunocampos , saya menggunakan target: Android 9.0
dengan API level 28
.
Diperbarui network_security_config.xml
dan sekarang emulator berfungsi dengan baik.
Saya mengalami masalah saat memulainya di ios dan Android (mencoba di Android studio, tanpa Android studio, dengan xcode dan tanpa xcode). Saya mencoba semua yang disebutkan di atas.
Jadi yang TIDAK membantu adalah:
Satu-satunya hal yang harus saya lakukan adalah melakukan: sudo npm start dari react direktori proyek asli. Sepertinya masalah izin. (menggunakan mac)
@inspiraluna itu masalah instalasi npm dasar, Anda harus mencari dir sistem Anda.
tambahkan Android:usesCleartextTraffic= "true" ke aplikasi Anda, dalam manifes
android:usesCleartextTraffic="benar"
android:theme="@style/AppTheme">
Ini bekerja untuk saya.
Saya menambahkan
android:usesCleartextTraffic="true"
keAndroidManifest.xml
pada tag<application ...
dan membangun kembali aplikasi. Setelah itu, mulai memuat dari server dev secara normal.
Ini memperbaiki masalah untuk saya juga, tetapi saya akan mengawali ini dengan mengatakan saya mencoba perbaikan ini pada awalnya dan tidak berhasil. Saya harus memulai dengan emulator baru, mematikan dan memulai ulang abd beberapa kali, menginstal ulang Android studio, memperbarui gradle, dll.
@Eyesonly88 Terima kasih..Ini bekerja untuk saya
saya telah menambahkan
android:usesCleartextTraffic= "benar" ke AndroidManifest.xml
Inilah cara saya memperbaiki masalah tidak memiliki alat pengembang di emulator:
Jawaban SO ini menyarankan untuk memeriksa file MainApplication.java
Anda dan menghapus BuildConfig.Debug
dari metode getUseDeveloperSupport
, sehingga terlihat seperti ini:
<strong i="11">@Override</strong>
public boolean getUseDeveloperSupport() {
// Return true to load JS from the packager.
// If BuildConfig.DEBUG is false, assets will be loaded from assets folder.
return true; // BuildConfig.DEBUG;
}
Komentar yang paling membantu
Coba jalankan:
adb reverse tcp:8081 tcp:8081
pada prompt perintah Anda dan jalankan kembali proyek Anda setelah itu.