React native: Proyek Android tidak ditemukan. Mungkin jalankan react-native android dulu?


90

Saya memiliki masalah dalam proyek React-Native saya yang bekerja dengan baik sebelumnya tetapi tiba-tiba berhenti bekerja. Setiap kali saya menggunakan perintah:

react-native run-android

Saya mendapatkan kesalahan :

Proyek Android tidak ditemukan. Mungkin jalankan react-native android dulu?

Saya mencoba berlari:

react-native android

Tapi dikatakan:

Unrecognized command 'android' Run react-native --help to see list of all available commands

Setelah mencoba:

D:\ProjectRoot\ReactNativeProjects\AwesomeProject>react-native eject

Kesalahan yang dikembalikan adalah:

Memindai folder untuk symlink di D: \ ProjectRoot \ ReactNativeProjects \ AwesomeProject \ node_modules (48ms) Aplikasi nameharus ditentukan dalam app.jsonfile konfigurasi untuk menentukan nama proyek. Tidak boleh mengandung spasi atau tanda hubung.

Ini adalah file app.json:

{
  "expo": {
    "name": "AwesomeProject",
    "description": "A very interesting project.",
    "slug": "AwesomeProject",
    "privacy": "public",
    "sdkVersion": "30.0.0",
    "platforms": ["ios", "android"],
    "ios": {
      "supportsTablet": true
    },
    "android": {
      "package": "com.project.first"
    },
    "version": "1.0.0",
    "orientation": "portrait",
    "icon": "./assets/images/icon.png",
    "splash": {
      "image": "./assets/images/splash.png",
      "resizeMode": "contain",
      "backgroundColor": "#ffffff"
    },
    "updates": {
      "fallbackToCacheTimeout": 0
    },
    "assetBundlePatterns": [
      "**/*"
    ]
  }
}

1
jika folder android hilang di root directive, jalankan react-native eject.
Khurshid Ansari

1
@Khurshid Ansari solusi Anda tidak berfungsi, karena kesalahan akan datang: "Nama aplikasi harus ditentukan dalam file konfigurasi app.json untuk menentukan nama proyek" bahkan ketika nama tersebut ditentukan. Silakan lihat pertanyaan yang diperbarui.
Abhinav Saxena

Jawaban:


156

Saya mengajukan pertanyaan ini dan menjawab sendiri karena saya pikir itu akan membantu orang lain yang menghadapi masalah serupa. Saya berjuang keras untuk menemukan alasan sebenarnya di baliknya karena kesalahan yang ditunjukkan di terminal tidak tepat.

Untuk mengatasi masalah ini, harap tingkatkan paket react-native.

  1. Pergi ke akar Proyek .

  2. Tingkatkan paket asli React di Command Prompt dengan mengetik:

    react-native upgrade.

  3. Kemudian Terima untuk memperbarui semua File dengan mengetik y (Yes)di Command Prompt .

Referensi: https://github.com/facebook/react-native/issues/9312


9
Menyelamatkan hari :)
Muhammad

di mana paket asli React ditemukan? tolong buat langkah
Lutaaya Huzaifah Idris

@LutaayaHuzaifahIdris Seperti yang disebutkan dalam jawaban, paket react native dapat diupgrade di root Project. Jadi, buka command prompt dan masuk ke root proyek. Kemudian tingkatkan paket react native.
udai

itu ditingkatkan react-native yang tidak saya inginkan.
Khurshid Ansari

Solusi kerja saya ada di bawah, tidak satu pun di atas yang berfungsi untuk saya :: 1. Buka AVD manager di Android Studio dan jalankan perangkat virtual (Anda dapat menutup AS setelahnya) 2. CMD ke dalam folder proyek Anda dan ketik 'expo start' 3. Setelah Expo dimulai pilih opsi 2 yaitu "Tekan a untuk emulator Android" Ini akan menginstal expo pada perangkat virtual dan Anda dapat mengujinya dari sana
Paul Gwamanda

24

Buka Direktori Root Proyek React Native Anda dan cari android -> app -> build -> intermediates -> penandatanganan_config -> debug -> out -> penandatanganan-config.json. hapus sign-config.json file ini coba lagi

Atau

1) Kadang-kadang jika kami memiliki versi react native yang lebih lama dan beberapa paket yang baru diinstal, dosis tidak mendukung versi yang lebih lama. Kemudian Anda harus memperbarui proyek react native menggunakan perintah upgrade react-native.

  1. Setelah selesai memperbarui proyek saat ini ke versi baru, kesalahan ini harus diselesaikan.

23

Saya tahu ini adalah pertanyaan lama tetapi salah satu solusi tersebut tidak berhasil untuk saya dan mungkin ada orang lain yang seperti saya. Saya memecahkan masalah saya menjalankan perintah ini sebelumnyarun-android

react-native eject

1
untuk beberapa alasan ini melakukan trik untuk saya juga, saya mencoba versi yang lebih baru dari upgrade asli react menggunakan "react-native-git-upgrade" seperti yang disarankan ketika Anda menjalankan "react-native upgrade" itu tidak berhasil untuk saya.
Zaid Qureshi

2
Perintah ini membuat ulang folder android dan ios dalam proyek Anda
Khurshid Ansari

1
Saya rasa ini adalah jawaban yang tepat. Bukan hanya karena itu berhasil untuk saya, tetapi karena dari pemahaman saya dari para dokter, ini adalah cara yang dimaksudkan untuk melakukannya dan oleh karena itu tanpa efek samping lain.
Daan

10
The ejectperintah telah dihapus dari react-native.
Phantom Watson

9

Pastikan untuk memulai proyek menggunakan perintah (non-expo):

react-native init <your-project-name>

Jika sudah ada foldernya, maka ikuti:

react-native eject


Di versi terbaru react-native, saran ini muncul saat Anda mencoba mengeluarkan perintah:

react-native eject

Memindai folder untuk symlink di D: \ ProjectRoot \ ReactNativeProjects \ AwesomeProject \ node_modules (48ms) Aplikasi nameharus ditentukan dalam app.jsonfile konfigurasi untuk menentukan nama proyek. Tidak boleh mengandung spasi atau tanda hubung.

Sekarang ketika Anda mengeluarkan perintah berikut:

D:\ProjectRoot\ReactNativeProjects\AwesomeProject>react-native upgrade

Berikut ini muncul:

Memindai folder untuk symlink di D: \ ProjectRoot \ ReactNativeProjects \ AwesomeProject \ node_modules (56ms) Anda harus mempertimbangkan untuk menggunakan alat pemutakhiran baru berdasarkan Git. Itu membuat peningkatan lebih mudah dengan menyelesaikan sebagian besar konflik secara otomatis. Untuk menggunakannya: - Kembali ke versi lama React Native - Jalankan "npm install -g react-native-git-upgrade" - Jalankan "react-native-git-upgrade" Lihat https://facebook.github.io /react-native/docs/upgrading.html versi react-native di "package.json" tidak cocok dengan versi yang diinstal di "node_modules". Coba jalankan "npm install" untuk memperbaikinya. Membatalkan.

Dalam saran perintah reaksi-asli Facebook, ada solusi yang jelas.

Perintah ini memeriksa versi saat ini dan apakah ada pembaruan yang diperlukan atau tidak.

Satu lagi solusi:

react-native: Perintah run-androidtidak dikenal. Mungkin disebabkan oleh npm install

Silakan lihat juga:

Solusi untuk "Expo: tidak dapat menemukan modul LogReporter"


Jawaban yang diterima untuk saya, +10 rep. ke @Abhinav
Saeed

8

Aku suka ini ... Berhasil !!

  1. Dalam proyek CMD root run react-native upgrade .
  2. jika Anda masih mendapatkan masalah, pastikan Anda memiliki react-native di dependensi json di package.json , tambahkan jika tidak
  3. jika Anda masih mendapatkan masalah, dapatkan versi react native di cmd menggunakan react-native -v dan periksa apakah nilai yang dikembalikan di cmd dan package.json sama. perbarui package.json dengan nilai yang dikembalikan dalam cmd

Di sini masalah saya terpecahkan.


6

Buka Command Prompt sebagai Administrator dan buka folder proyek, jalankan android (npx react-native run-android)


4

Hapus file: React Native Project Root Directory dan cari android -> app -> build -> intermediates -> signed_config -> debug -> out -> penandatanganan-config.json.


4

Saya harus mengubah gaya AndroidManifest.xml saya karena saya mengalami kesalahan sintaks di suatu tempat (saya memiliki tambahan "/" di suatu tempat). Sekarang sudah diperbaiki. Berhati-hatilah dengan sintaks Anda ...


Bagaimana ini jawabannya?
theWellHopeErr

3

Kami mengalami masalah ini karena file dari folder android gradlew dan gradlew.bat (skrip startup Gradle untuk UN * X, masing-masing Windows) entah bagaimana masuk ke file global .gitignore, sehingga tidak disajikan di lingkungan lokal.

Sebenarnya menjalankan perintah pemutakhiran react-native memulihkan file-file itu, sehingga memperbaiki masalah.


3

Sebagai pelengkap, jika perintah react-native tidak ditemukan, Anda harus menginstal CLI react-native:

npm install -g react-native-cli

Kemudian Anda bisa mengikuti langkah-langkah yang dikatakan orang di atas.

Detail selengkapnya: react-native: perintah tidak ditemukan


2

Jika Anda memulai proyek Anda dengan mengikuti

npm install -g create-react-native-app
create-react-native-app MyReactNative
npm install -g react-native-cli
npm start

setelah ini, Anda dapat menghadapi masalah yang disebutkan di atas dalam pertanyaan Jadi solusinya adalah:

npm run eject

2

Buka React Native Project Root Directory dan cari android -> app -> build -> intermediates -> signed_config -> debug -> out -> penandatanganan-config.json

Hapus file dan coba lagi.


2

Saya menghadapi masalah ini hari ini, dan tidak ada solusi yang berhasil untuk saya, jadi saya menemukan yang lain.

AndroidManifest.xml yang Berformat Buruk akan menyebabkan masalah ini , mungkin Anda menyetel layar splash seperti saya hari ini, dan tidak memformat AndroidManifest dengan cara yang benar


1

Di sini, app.json tidak memiliki nama, tetapi memiliki konfigurasi terkait pameran. Jadi tambahkan saja bidang nama dan nama tampilan di app.json.

app.json (dua baris pertama):

{
"name": "AwesomeProject",
"displayName": "Awesome Project",
"expo": {
    "name": "AwesomeProject",
    "description": "A very interesting project.",
    "slug": "AwesomeProject",
    "privacy": "public",
    "sdkVersion": "30.0.0",
    "platforms": ["ios", "android"],
    "ios": {
      "supportsTablet": true
    },
    "android": {
      "package": "com.project.first"
    },
    "version": "1.0.0",
    "orientation": "portrait",
    "icon": "./assets/images/icon.png",
    "splash": {
      "image": "./assets/images/splash.png",
      "resizeMode": "contain",
      "backgroundColor": "#ffffff"
    },
    "updates": {
      "fallbackToCacheTimeout": 0
    },
    "assetBundlePatterns": [
      "**/*"
    ]
  }
}

Setelah ini, jalankan saja:

$ react-native eject

info Membuat folder iOS.

info Membuat folder Android.

Tidak perlu melakukan upgrade react-native.


sebenarnya, "expo eject" juga berfungsi lebih baik. Itu memberi saya opsi dan memperbarui app.json dan membuat direktori android / ios.
hp2017

1

Menjalankan Terminal sebagai Administrator di Windows melakukan trik untuk saya ... Solusi lain tidak berhasil.


Ini hanya berkat jawaban yang ada oleh karthik mano, bukan? Jika tidak, harap jelaskan wawasan tambahan apa yang diberikan jawaban ini.
Yunnosch

1

Saya menggunakan Android Studio (non-expo) dan ini berfungsi untuk saya

react-native init <your-project-name>

1

Anda harus menjalankan cmd Anda dengan hak istimewa admin. Itu memecahkan masalah yang sama untuk saya. Tidak melakukan "eject" atau apa pun.


Ada banyak jawaban serupa yang tersedia untuk pertanyaan yang sama. Alih-alih menambahkan jawaban Anda, Anda bisa memberi suara positif pada jawaban yang ada jika itu membantu Anda.
Deepak Terse

1

Dalam kasus saya, saya lupa menambahkan Sudo. Diperbaiki sebagai berikut,

sudo npx react-native run-android

1

Hapus penandatanganan-config.json selanjutnya coba lagi react-native run-android

file penandatanganan config.json Jalur: android -> app -> build -> intermediates -> penandatanganan_config -> debug -> keluar -> penandatanganan-config.json


1

Saya pikir satu hal lagi yang bisa Anda periksa, adalah jika sebelumnya Anda menjalankan proyek sebagai peran pengguna yang berbeda, seperti di windows jika sebelumnya Anda menjalankan react-native run-android dengan peran administrator.


Saya memiliki masalah serupa dengan pertanyaan di atas dan memulai terminal dengan izin admin (di Windows) kesalahan ini hilang.
LakeRunner

1

Dalam kasus saya, saya tidak memiliki izin yang tepat untuk folder proyek saya.

Jika ini kasus Anda, cukup klik dengan tombol kanan pada folder> Properti> Keamanan> Lanjutan dan kemudian ubah kepemilikan folder ke pengguna Anda, termasuk subfolder. Itu harus dilakukan


1

Bagi saya, "rm -rf android / app / build /" berfungsi

Jalankan perintah Anda dengan "--verbose". Saya mendapat kesalahan bahwa itu tidak dapat membaca file (di android / app / build / generated / not_namespaced_r_class_sources /). Saya menghapus folder ini, dan berhasil


0

Solusi kerja saya ada di bawah, tidak satu pun di atas yang berhasil untuk saya:

CD ke dalam folder proyek Anda dan ketik expo start --android.

Atau jauh:

  1. Buka AVD manager di Android Studio dan jalankan perangkat virtual (Anda dapat menutup AS sesudahnya)
  2. CMD ke dalam folder proyek Anda dan ketik 'expo start'
  3. Setelah Expo dimulai pilih opsi 2 yaitu "Tekan a untuk emulator Android"

Ini akan menginstal expo di perangkat virtual dan Anda dapat mengujinya dari sana


0

Ketika saya berlari react-native eject, saya mendapatkan kesalahan ini:

Both the iOS and Android folders already exist! Please delete `ios` and/or `android` before ejecting.
  • Hapus MyProject/androidfoldernya.
  • Jalankan react-native ejectIni menghasilkan androidfolder

  • Kemudian jalankan react-native run-androiduntuk membangun android


0

Anda harus mempertimbangkan untuk menggunakan alat peningkatan baru berdasarkan Git. Itu membuat peningkatan lebih mudah dengan menyelesaikan sebagian besar konflik secara otomatis. Untuk menggunakannya: - Kembali ke versi lama React Native - Jalankan "npm install -g react-native-git-upgrade" - Jalankan "react-native-git-upgrade" Lihat https://facebook.github.io /react-native/docs/upgrading.html



0

Mungkin sudah terlambat, saya mengganti Androidfolder dari file cadangan. Itu berhasil untuk saya.


0

Aku memecahkan masalah ini dengan membunuh semua contoh java.exe dengan: taskkill /f /im java.exe.


0

Saya mengalami kesalahan yang sama dalam sebuah proyek (dibuat dengan React Native CLI):

masukkan deskripsi gambar di sini

ternyata saya mengalami kesalahan sintaks di file manifes android saya (android / app / src / main / AndroidManifest.xml).


0

Hapus react native android build folderlalu coba lagi perintahnpx react-native run-android

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.