React native: проект Android не знайдено. Можливо, спочатку запустіть андроїд для реагування?


88

У мене виникла проблема у моєму проекті React-Native, який раніше працював нормально, але раптом він перестав працювати. Кожного разу, коли я використовував команду:

react-native run-android

Я отримав повідомлення про помилку :

Проект Android не знайдено. Можливо, спочатку запустіть андроїд для реагування?

Я спробував запустити:

react-native android

Але там було сказано:

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

Після спроби:

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

Помилка була повернута:

Сканування папок на наявність символьних посилань у D: \ ProjectRoot \ ReactNativeProjects \ AwesomeProject \ node_modules (48ms) Додаток nameповинен бути визначений у app.jsonфайлі конфігурації, щоб визначити назву проекту. Він не повинен містити пробілів і тире.

Це файл 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
якщо в кореневій директиві відсутня папка android, запустіть реагування-native eject.
Хуршид Ансарі,

1
@Khurshid Ansari ваше рішення не спрацювало, оскільки з'являється помилка: "Ім'я програми має бути визначено у конфігураційному файлі app.json, щоб визначити назву проекту", навіть коли ім'я визначено. Перегляньте оновлене запитання.
Абхінав Саксена

Відповіді:


155

Я підняв це питання і відповів собі, оскільки вважав, що це допоможе іншим, хто стикається з подібною проблемою. Я багато намагався з’ясувати справжню причину, оскільки помилка, показана в терміналі, не була точною.

Щоб вирішити проблему, будь ласка, оновіть пакет для реагування.

  1. Перейдіть до кореня проекту .

  2. Оновіть рідний пакет React у командному рядку , набравши:

    react-native upgrade.

  3. Потім Прийняти , щоб оновити всі файли, ввівши y (Yes)в Command Prompt .

Довідково: https://github.com/facebook/react-native/issues/9312


9
Врятував день :)
Мухаммед

де знаходиться рідний пакет React? будь ласка, зробіть чіткі кроки
Lutaaya Huzaifah Idris

@LutaayaHuzaifahIdris Як зазначалося у відповіді, рідний пакет для реагування можна оновити в корені проекту. Отже, відкрийте командний рядок і перейдіть до кореня проекту. Потім оновіть рідний пакет React.
удай

це модернізована реакція-рідна, що я не хотів.
Хуршид Ансарі

Моє робоче рішення наведено нижче, жодне з перерахованого не працювало для мене :: 1. Відкрийте менеджер AVD в Android Studio і запустіть віртуальний пристрій (після цього можна закрити AS) 2. CMD у папці проекту та введіть "expo start" 3. Коли Expo розпочнеться, виберіть варіант 2, який називається "Натисніть на емулятор Android". Він встановить expo на віртуальному пристрої, і ви зможете тестувати звідти
Пол Гваманда

23

Я знаю, що це старе питання, але будь-яке з цих рішень не працювало для мене, і, можливо, є такі, як я. Я вирішив свою проблему із запуском цієї команди ранішеrun-android

react-native eject

1
з якоїсь причини це зробило трюк і для мене, я спробував нову версію рідного оновлення з реакцією, використовуючи "response-native-git-upgrade", як було запропоновано під час запуску "реагувати на рідне оновлення", це не спрацювало для мене.
Заїд Куреші,

2
ця команда повторно створить папку android та ios у вашому проекті
Khurshid Ansari

1
Я думаю, що це правильна відповідь. Не лише тому, що це спрацювало для мене, а тому, що, як я зрозумів із документації, це передбачуваний спосіб зробити це, і тому без інших побічних ефектів.
Даан,

8
ejectКоманда була видалена з react-native.
Phantom Watson

16

Відкрийте свій кореневий каталог React Native Project і знайдіть android -> app -> build -> intermediates -> sign_config -> debug -> out -> signature-config.json. видалити підпис-config.json цей файл спробуйте ще раз

Або

1) Іноді, якщо у нас є старіша версія рідної реакції, а деякі нещодавно встановлені пакети не підтримують стару версію. Потім вам доведеться оновити рідний проект React, використовуючи команду React-native upgrade.

  1. Після оновлення поточного проекту до нової версії ця помилка повинна бути усунена.

9

Не забудьте запустити проект за допомогою команди (не експо):

react-native init <your-project-name>

Якщо наявна папка, виконайте наступні дії:

реагувати нативним викидом


В останній версії React-native ця пропозиція з’являється під час спроби виконати команду:

react-native eject

Сканування папок на наявність символьних посилань у D: \ ProjectRoot \ ReactNativeProjects \ AwesomeProject \ node_modules (48ms) Додаток nameповинен бути визначений у app.jsonфайлі конфігурації, щоб визначити назву проекту. Він не повинен містити пробілів і тире.

Тепер, коли ви видаєте таку команду:

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

З’являється таке:

Сканування папок на наявність символьних посилань у D: \ ProjectRoot \ ReactNativeProjects \ AwesomeProject \ node_modules (56ms). Вам слід розглянути можливість використання нового інструменту оновлення на основі Git. Це полегшує оновлення, вирішуючи більшість конфліктів автоматично. Щоб використовувати його: - Поверніться до старої версії React Native - Запустіть "npm install -g response-native-git-upgrade" - Запустіть "reagirajte-native-git-upgrade" Дивіться https://facebook.github.io /react-native/docs/upgrading.html рідна для реагування версія в "package.json" не відповідає встановленій версії в "node_modules". Спробуйте запустити "npm install", щоб це виправити. Переривання.

У пропозиціях щодо реагування на рідні команди Facebook є чітке рішення.

Ці команди перевіряють поточну версію та чи потрібно оновлення чи ні.

Ще одне рішення:

response-native: Команда run-androidневизнана. Можливо, причиною встановлення npm

Також перегляньте:

Рішення для "Expo: не вдається знайти модуль LogReporter"


Прийнята для мене відповідь, +10 реп. @Abhinav
Saeed,

8

Мені це сподобалось ... Працював !!

  1. У кореневому проекті CMD запустіть оновлення, реалізоване за допомогою програми .
  2. якщо ви все ще отримуєте проблеми, переконайтеся, що у вас є реакція-native у залежностях json в package.json , додайте його, якщо ні
  3. якщо ви все ще отримуєте проблеми, завантажте версію response native у cmd, використовуючи response-native -v і перевірте, чи значення, що повертаються в cmd та package.json, однакові. оновіть package.json зі значенням, яке повертається в cmd

Тут моя проблема вирішена.


5

Відкрийте командний рядок як адміністратор і перейдіть до папки проекту, запустіть android (npx response-native run-android)


3

У нас виникла ця проблема, оскільки файли з папок android gradlew та gradlew.bat (сценарій запуску Gradle для UN * X, відповідно Windows) якимось чином потрапили у глобальний файл .gitignore, і тому їх не було представлено в локальних середовищах.

Насправді запущена команда -оновлення для реагування на рідне відновлення цих файлів, таким чином, вирішення проблеми


3

Як доповнення, у випадку, якщо команду реагування рідно не знайдено, слід встановити CLI реагування рідного типу:

npm install -g react-native-cli

Тоді ви можете слідувати крокам, про які говорили люди вище.

Детальніше: response-native: команду не знайдено


2

Якщо ви розпочали свій проект, дотримуючись

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

після цього ви можете зіткнутися з вищезазначеною проблемою. Отже, рішення полягає в:

npm run eject

2

Я зіткнувся з цією проблемою сьогодні, і жодне з вирішень не працювало для мене, тому я знайшов інше.

Погано відформатований AndroidManifest.xml спричинить цю проблему , можливо, ви встановили екран заставки, як я сьогодні, і не правильно відформатували AndroidManifest


1

Тут app.json не має імені, але має конфігурацію, пов’язану з expo. Тож просто додайте поля name та display name у app.json.

app.json (перші два рядки):

{
"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": [
      "**/*"
    ]
  }
}

Після цього просто запустіть:

$ реагувати нативним викидом

інформація Створення папки iOS.

інформація Створення папки Android.

Не потрібно робити рідне оновлення.


насправді, "expo eject" також працює краще. Це дало мені параметри та оновило app.json та створило каталоги android / ios.
hp2017

1

Видаліть файл: React Native Project Root Directory і знайдіть android -> app -> build -> intermediates -> signature_config -> debug -> out -> signature-config.json.


1

Запуск Terminal від імені адміністратора в Windows зробив для мене фокус ... Інші рішення не працювали.


Це лише завдяки завдяки існуючій відповіді karthik mano, чи не так? Якщо ні, будь ласка, поясніть більше, що додаткове розуміння дає ця відповідь.
Юннош

1

Я використовую Android Studio (не для експо), і це працює для мене

react-native init <your-project-name>

1

Вам потрібно запустити ваш cmd з правами адміністратора. Це вирішило те саме для мене. Не робив "викидати" або щось інше.


Існує багато подібних відповідей на одне і те ж питання. Замість того, щоб додавати свою відповідь, ви можете просто проголосувати існуючу відповідь, якщо вона вам допомогла.
Діпак Терсі

1

Відкрийте свій кореневий каталог React Native Project і знайдіть android -> app -> build -> intermediates -> sign_config -> debug -> out -> signature-config.json

Видаліть файл і повторіть спробу.



0

Моє робоче рішення наведено нижче, жодне з перерахованих вище не працювало для мене:

CD у папку проекту та введіть expo start --android.

Або довгий шлях:

  1. Відкрийте диспетчер AVD в Android Studio і запустіть віртуальний пристрій (згодом ви можете закрити AS)
  2. CMD у папку проекту та введіть "expo start"
  3. Після запуску Експо виберіть варіант 2, який називається "Натисніть на емулятор для Android"

Він встановить expo на віртуальному пристрої, і ви зможете тестувати звідти


0

Коли я запустив react-native eject, я отримав таку помилку:

Both the iOS and Android folders already exist! Please delete `ios` and/or `android` before ejecting.
  • Видаліть MyProject/androidпапку.
  • Запустити react-native ejectЦе створило androidпапку

  • Тоді біжимо react-native run-androidбудувати андроїд


0

Вам варто розглянути можливість використання нового інструменту оновлення на базі Git. Це полегшує оновлення, вирішуючи більшість конфліктів автоматично. Щоб використовувати його: - Поверніться до старої версії React Native - Запустіть "npm install -g response-native-git-upgrade" - Запустіть "reagirajte-native-git-upgrade" Дивіться https://facebook.github.io /react-native/docs/upgrading.html


0

Якщо ви створили свій проект за допомогою expoкоманди, наприклад expo init projectname, тоді вам доведеться вийняти проект:

expo eject

Якщо ви створили свій проект до того react-native init projectNameчасу, вам доведеться використовувати

react-native eject

Команда вилучення була вилучена з рідного github.com/react-native-community/cli/pull/275
Michimcchicken

0

Можливо, пізно, я замінив Androidпапку з файлу резервної копії. У мене це спрацювало.



0

У мене була та ж помилка в проекті (створеному за допомогою React Native CLI):

введіть тут опис зображення

виявляється, у моєму файлі маніфесту андроїда була синтаксична помилка (android / app / src / main / AndroidManifest.xml).


0

У моєму випадку я забув додати Судо. Виправлено наступним чином,

sudo npx react-native run-android

0

Видаліть signature-config.json, спробуйте ще раз reagirati -native run-android

Файл підпису config-config.json: android -> app -> build -> intermediates -> signature_config -> debug -> out -> sign-config.json


0

Я думаю, ще одна проста річ, яку ви могли б перевірити, - це те, що раніше ви запускали проект як іншу роль користувача, як у вікнах, якщо раніше ви запускали response-native run-android з роллю адміністратора.


0

Видаліть рідний андроїд, build folderа потім повторіть командуnpx react-native run-android

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.