react-native run-android
perintah berakhir dengan meninggalkan pesan di simulator android. Pesannya adalah sebagai berikut:
Tidak dapat memuat skrip. Pastikan Anda menjalankan server Metro atau bundel 'index.android.bundle' Anda dikemas dengan benar untuk dirilis.
Apa yang saya lakukan salah?
Jawaban:
Anda belum memulai bundler. Jalankan
npm start
ataureact-native start
di direktori root proyek Anda sebelumnyareact-native run-android
.sumber
Langkah-langkah ini sangat membantu saya:
Langkah 1: Buat direktori di android / app / src / main / aset
Perintah Linux :
mkdir android/app/src/main/assets
Langkah 2: Ganti nama
index.android.js
(dalam direktori root) menjadiindex.js
( Mungkin adaindex.js
file dalam hal ini Anda tidak perlu mengubah nama itu ) kemudian jalankan perintah berikut:Langkah 3: Bangun APK Anda:
react-native run-android
Silakan gunakan index.js dalam versi terbaru.
Nikmati :)
sumber
index.js
file di direktori root di mana Anda tidak perlu mengganti namaBagi saya kesalahan ini disebabkan oleh peningkatan versi asli
Jika Anda memeriksa perbedaan upgrade, Anda perlu membuat manifes debug
android/app/src/debug/AndroidManifest.xml
Lihat untuk info lebih lanjut: https://stackoverflow.com/a/50834600/1713216
https://react-native-community.github.io/upgrade-helper/
sumber
android:usesCleartextTraffic="true"
pada tampilan utamaAndroidManifest.xml
apakah itu berfungsi?Pertama lakukan langkah 4 dan 5 maka Anda dapat menjalankan proyek Anda. Jika Anda tidak mendapatkan hasilnya (dengan langkah 4 dan 5) lakukan langkah-langkah berikut
1- Cobalah untuk menurunkan versi versi Node Anda (versi saat ini
12.13.1
)2- Tambahkan jalur modul npm (
C:\Users\your user name\AppData\Roaming\npm
) ke variabel sistem, bukan variabel pengguna3 - Instal bereaksi asli secara global dengan menggunakan perintah
4- Pergi ke root direktori proyek Anda dan jalankan perintah berikut:
5- Buka terminal lain di root proyek Anda dan jalankan perintah berikut:
EDIT:
Anda menggunakan Genymotion? Jika ya, lakukan langkah berikut:
Setelah langkah di atas apakah Anda mendapatkan kesalahan berikut?
Buka genimotion Anda dan buka:
genymotion menu -> Settings -> ADB -> Kemudian pilih use custom android sdk tools(klik browse untuk menemukan lokasi SDK)
Akhirnya, jalankan proyek Anda lagi ..
sumber
Anda dapat mencoba yang berikut ini:
Tambahkan baris ini di AndroidManifest.xml Anda
sumber
Masalah serupa terjadi pada saya.
Rupanya Mcafee memblokir port 8081. Butuh waktu berjam-jam untuk mencari tahu hal ini.
Coba jalankan:
Ketika aplikasi muncul dengan kesalahan pada emulator, masuk ke pengaturan dev ( Ctrl+ M).
Ubah "host server Debug dan port untuk perangkat" menjadi "localhost: 1234".
Tutup aplikasi dan mulai dari laci aplikasi.
sumber
cukup tambahkan tiga splash di: node_modules \ metro-config \ src \ defaults \ blacklist.js
ganti bagian ini:
sumber
jika semuanya sudah terkonfigurasi dengan benar, maka coba ini:
adb reverse tcp: 8081 tcp: 8081
Mengapa? "Ketika paket RN sedang berjalan, ada server web aktif yang dapat diakses di browser Anda di 127.0.0.1:8081. Ini dari server ini bahwa bundel JS untuk aplikasi Anda disajikan dan disegarkan saat Anda membuat perubahan. Tanpa proxy terbalik, telepon Anda tidak akan dapat terhubung ke alamat itu. "
semua kredit ke Swingline0
sumber
[Jawaban cepat]
Setelah mencoba menyelesaikan masalah ini di ruang kerja saya, saya menemukan solusi.
Kesalahan ini karena ada masalah dengan Metro menggunakan beberapa kombinasi NPM dan versi Node.
Anda memiliki 2 alternatif:
Alternatif 2: Buka file ini:
\node_modules\metro-config\src\defaults\blacklist.js
dan ubah kode ini:dan ubah menjadi ini:
sumber
Ini berhasil bagi saya setelah mencoba beberapa cara.
Dalam file
node_modules\metro-config\src\defaults\blacklist.js
Ganti:
dengan:
semoga ini membantu.
sumber
metro-config
digunakan \ untuk jalur alih-alih /, yang disarankan untuk diubah oleh jawaban ini. Jangan lakukan ini . Memodifikasi paket npm berarti seluruh tim Anda harus melakukan ini pada mesin mereka, dalam CI, dalam pementasan, dalam produksi, dan setiap kali metro-config merilis pembaruan. Pendekatan yang lebih baik adalah dengan memotong metro-config di GitHub, melakukan perbaikan, mendorong dan mengirimkan PR untuk memperbaikinya untuk semua orang.Dimulai dengan Android 9.0 (API level 28), dukungan cleartext dinonaktifkan secara default.
Ini adalah apa yang perlu Anda lakukan untuk menyingkirkan masalah ini jika Anda menjalankan perintah yang normal
Dan modifikasi file manifes android Anda seperti ini.
sumber
Setelah jam mencari jawaban. Solusinya adalah membuat simpul downgrade ke versi 12.4.
Dalam kasus saya, saya menyadari bahwa kesalahan hanya terjadi pada versi bereaksi asli 0,60 dengan simpul versi 12,6.
sumber
Solusi saya untuk ini adalah sebagai berikut:
Mulai server Metro
Mulai Android
Jika melihat kesalahan yang mengatakan "port 8081 sudah digunakan", maka Anda dapat mematikan proses itu dan jalankan kembali
Lihat React Native Troubleshooting Page .
sumber
Jika Anda berada di linux, buka terminal dari direktori root App dan jalankan
kemudian buka jendela terminal lain dan jalankan:
sumber
Saya hanya ingin menambahkan kemungkinan yang tidak jelas yang tidak dibahas di sini. Saya menggunakan @ react-asli-komunitas / netinfo untuk mendeteksi perubahan jaringan, terutama keadaan jaringan. Untuk menguji keadaan network-off, sakelar WIFI (pada emulator) harus dimatikan. Ini juga secara efektif memotong jembatan antara emulator dan lingkungan debug. Saya belum mengaktifkan kembali WIFI setelah tes karena saya jauh dari komputer dan segera melupakannya ketika saya kembali.
Ada kemungkinan bahwa ini bisa menjadi kasus untuk orang lain juga dan perlu diperiksa sebelum mengambil langkah drastis lainnya.
sumber
Saya mengalami masalah yang sama, masalahnya bagi saya adalah adb tidak berada di jalur lingkungan yang benar, kesalahannya memberitahu Anda port metro, saat Anda berada di adb, port terbunuh dan dihidupkan ulang.
Tambahkan Variabel Lingkungan (ADB)
Jalankan android build lagi
Atau
sumber
Saya juga menghadapi masalah ini. Saya menyelesaikan langkah berikut ini.
Periksa jalur sdk android di Lingkungan Benar.
Menambahkan
ANDROID_HOME = C:\Users\user_name\AppData\Local\Android\Sdk
dalam Sistem Variabeldan
C:\Users\user_name\AppData\Local\Android\Sdk\platform-tools
jalan di Sistem Variableganti sharedBlacklist sebagai segmen kode di bawah ini,
di node_modules / metro-config / src / default / blacklist.js
Kemudian jalankan npx react-native run-android --port 9001
Selamat Coding ..!
sumber
Saya mengalami ini hanya karena Wifi saya salah dimatikan pada emulator saya. Saya menyalakannya kembali dan mulai bekerja dengan baik. Semoga bermanfaat bagi seseorang
sumber
Solusi yang berhasil bagi saya adalah sebagai berikut:
sumber
perbarui bagian ini dalam daftar hitam metro
sumber
Saya mengalami masalah yang sama saat mengikuti tutorial React Native (berkembang di Linux dan menargetkan Android).
Masalah ini membantu saya menyelesaikan masalah dalam langkah-langkah berikut. Jalankan perintah berikut dalam urutan di bawah ini:
mkdir android/app/src/main/assets
react-native bundle --platform android --dev false --entry-file index.js --bundle-output android/app/src/main/assets/index.android.bundle --assets-dest android/app/src/main/res
react-native run-android
Anda dapat mengotomatiskan langkah-langkah di atas dengan menempatkannya di
scripts
bagianpackage.json
seperti ini:Maka Anda bisa menjalankan
npm run android-linux
dari baris perintah Anda setiap saat.sumber
Secara default, sebuah server JavaScript kecil bernama "Metro Server" berjalan pada port 8081.
Anda perlu membuat port ini tersedia untuk Server ini untuk memulai. Begitu,
Bagaimana cara melepaskan port?
http://tenbull.blogspot.com/2019/05/how-to-kill-process-currently-using.html
Bagaimana cara membunuh proses yang saat ini menggunakan port di localhost di windows?
dan yang paling penting, saya memutakhirkan versi simpul saya dari 8.x menjadi 10.x (terbaru), seperti yang disarankan oleh facebook @ https://facebook.github.io/react-native/docs/getting-started
sumber
Bagi saya masalah ini dimulai dengan memutakhirkan reaksi asli. Pembaruan itu diperlukan untuk menambahkan dukungan 64-bit.
Juga, Satu perubahan penting yang saya buat untuk peningkatan adalah di ../android/build/build.gradle
Saya harus mengubah targetSdkVersion dari 27 menjadi 28 setelah peringatan ketika saya mencoba mengunggah build (.apk) ke goole play console. Sedikit yang saya sadari bahwa ini adalah akar penyebab kesalahan di atas bagi saya. Jawaban langsung oleh @tom dan @tinmarfrutos masuk akal.
Saya memecahkan masalah dengan menambahkan android: usingCleartextTraffic = "true" ke android / app / src / debug / AndroidManifest.xml
sumber
Dalam kasus saya, saya telah menetapkan proxy di emulator saya. Ini berfungsi kembali normal setelah saya menghapus proxy itu.
sumber
kemungkinan kesalahan ini juga merupakan jalur yang salah, periksa sekali
sumber
PENTING - Anda mungkin memiliki banyak perangkat Virtual di lingkungan Anda. Pastikan jika Anda mengubah AVD Anda mengulangi pengaturan lagi.
INFORMASI DEBUG-
Jika Anda mengalami kesalahan di atas, Anda harus terlebih dahulu memverifikasi apa yang berjalan pada port 8081
Cara tercepat untuk menemukan itu menggunakan perintah berikut di terminal
jika itu menunjukkan kepada Anda sesuatu itu berarti port diblokir. jika memungkinkan dapatkan porta tersebut tidak dicekal.
Jika tidak, Anda harus mengubah porta. Proses untuk melakukan itu telah disebutkan dalam komentar di atas oleh Naveen Kumar
Pastikan 9001 juga tidak digunakan :)
sumber
Coba langkah-langkah ini jika Anda telah mencoba semua yang disebutkan dalam solusi di atas:
sumber
Coba yang berikut ini.
Mungkin setelah langkah sebelumnya Anda menjalankan eksekusi npm - --reset-cache
Saya bekerja, saya harap ini membantu Anda.
sumber
Jika Anda menjalankan pada OS Linux, mungkin ada kasus di mana server jauh npm Anda tidak berjalan. Buka terminal lain (dengan direktori proyek) dan jalankan perintah ini sudo npm start atau sudo react-native start sebelum melakukan sudo react-native run-android
sumber
Pesan kesalahan pada emulator agak menyesatkan. Dalam kasus saya, saya menggunakan Macbook. Saya perlu mengubah izin pada android / gradlew dengan menjalankan
$ chmod 755 ./gradlew
, dan kemudian aplikasi dapat dibangun dan digunakan untuk emulator android.sumber