React native run-android не обновляет измененный код

Я использую React native 0.52.0 и response-native-cli 2.0.1 на моем ПК с Windows для разработки под Android. Несмотря на все изменения, которые я сделал. Когда я запускаю react-native run-android, он успешно собирается, но когда я запускаю его, я получаю стандартный экран реакции по умолчанию.

Результат, когда я запускаю react-native run-android - enter image description here

Приложение я get-

enter image description here

index.js

import { AppRegistry } from 'react-native';
import App from './App';

AppRegistry.registerComponent('albums', () => App);

app.js

import React from 'react'
import ReactNative, { Text } from 'react-native'

export default const App = () => {
  return (
    <Text>Hello World</Text>
  )
}

Когда я запускал исходные react-native init albums, это был просто файл index.js, который не был создан, не было ни файла index.android.js, ни index.ios.js. Что я делаю не так?

Ответ 1

Предполагая, что вы находитесь в правильной папке, попробуйте сделать это:

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/

Если у вас есть index.android.js, сделайте это вместо этого:

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/

Затем просто выполните run-андроид action-native.

Ответ 2

РЕШЕНИЕ

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

ВЫХОД будет:

'c:\Users\lenger\Desktop\webrowser>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
Scanning folders for symlinks in c:\Users\lenger\Desktop\webrowser\node_modules (43ms)
Scanning folders for symlinks in c:\Users\lenger\Desktop\webrowser\node_modules (38ms)
Loading dependency graph, done.
bundle: start
bundle: finish
bundle: Writing bundle output to: android/app/src/main/assets/index.android.bundle
bundle: Done writing bundle output

и после

Запустите react-native run-android еще раз, вы найдете работу по модификации.

https://lengerrong.blogspot.am/2018/01/react-native-run-android-do-not.html

Ответ 3

Возможно, вы обновляете неправильный файл и не вызываете его в классе AppRegistry.

Проверьте (или опубликуйте) свой полный index.android.js и убедитесь, что файл, который он вызывает и импортирует, является тем, который вы на самом деле изменяете.

Ответ 4

Это сработало для меня. Шаг 1)

rm -rf /usr/local/var/run/watchman && brew uninstall watchman && brew install watchman

Шаг 2)

react-native start

Ответ 5

в окне терминала перейдите в папку вашего проекта, а затем попробуйте эту команду

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/

Ответ 6

В моем случае удаление строки ниже в gradle.properties решило эту проблему.

org.gradle.configureondemand = true

Ответ 7

Это сработало для меня:

В папке вашего проекта запустите этот

c:\Users\lenger\Desktop\YourProjectFolder>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

Сканирование папок по символическим ссылкам в c:

\Users\lenger\Desktop\webrowser\node_modules (43ms)
Scanning folders for symlinks in c:\Users\lenger\Desktop\webrowser\node_modules (38ms)
Loading dependency graph, done.
bundle: start
bundle: finish
bundle: Writing bundle output to: android/app/src/main/assets/index.android.bundle
bundle: Done writing bundle output

Запустите реакцию-родной запустить-Android снова

Я делюсь ссылкой, где я нашел это решение: https://lengerrong.blogspot.com/2018/01/react-native-run-android-do-not.html

Ответ 8

Для меня проблема заключалась в том, что я удалил интернет-разрешения из моего AndroidManifest.xml (так как технически это не было нужно). React Native использует это разрешение для подключения вашего приложения к компьютеру разработчика (и включения оперативной отладки).

<uses-permission android:name="android.permission.INTERNET" />

Ответ 9

запустите скрипт ниже, после этого просто выполните 1.gradlew clean 2.react-native link

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

Ответ 10

Если вы используете index.android.js, выполните следующие действия:

Удалите index.android.bundle внутри android/app/src/main/assets и затем -

  1. собственный пакет --platform android --dev false - входной файл index.android.js - вывод-вывод android/app/src/main/assets/index.android.bundle --assets-dest android/app/SRC/основные /RES/

  2. CD/Android

  3. ./gradlew assemblyRelease -x bundleReleaseJsAndAssets

Ответ 11

Исправить это в 3 шага:

  1. Включить Live Reload
  2. Отключить горячую перезагрузку
  3. В настройках разработчика снимите флажок JS Dev Mode

Теперь ваше приложение автоматически обновляется каждый раз, когда вы вносите изменения в свои коды.

Ответ 12

Этот комментарий к github устранил мою проблему.

@neonsec Cool, it do works !

and I find a reason why this happened

https://github.com/facebook/watchman/blob/4b98623e8fde17588f27494f3ae8f084b9b227d3/QueryableView.cpp#L48

it looks like when a .git/index.lock or a .hg/wlock file exist, watchman will do nothing

Решение: УДАЛИТЬ файл .git/index.lock

## root app dir
rm -f .git/index.lock

otherlink:https://github.com/facebook/watchman/blob/4b98623e8fde17588f27494f3ae8f084b9b227d3/QueryableView.cpp#L48

Ответ 13

Откройте файл package.json и обновите этот код.

"scripts": {
"android": "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",
"ios": "react-native run-ios"
},

Предполагая, что вы находитесь в правильной папке, попробуйте сделать это:

Запустите эту команду, только она автоматически выполнит обе команды.

npm run android

Ответ 14

В каталоге вашего проекта есть файл package.json. Вы можете добавить следующий фрагмент кода в этот файл json под скриптами: После этого вы можете запустить приложение, используя команду npm run android-windows. Для нормальной работы необходимо добавить приведенный ниже код скрипта.

"android-windows": "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"

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

Ответ 15

Откройте Android Studio → меню " Инструменты " → " Диспетчер AVD " и щелкните правой кнопкой мыши на эмуляторе, который вы используете, выберите " Wipe Data ", после чего " Cold Boot Now " должен решить проблему.

enter image description here

Ответ 16

для устройств запустите cmd "adb shell input keyevent 82" включите живую перезагрузку сработало

Ответ 17

не было ни файла index.android.js, ни index.ios.js

В этом случае вы должны следовать инструкциям на вашем мобильном телефоне/эмуляторе, как показано ниже:

enter image description here

После сохранения вашего App.js, не забудьте набрать дважды R в верхнем регистре

Чтобы сделать это автоматически, на эмуляторе Android нажмите CTRL + M (CMD + M на MacOS) или встряхните устройство Android с запущенным приложением и выберите " Hot reloading (сохранить текущее состояние, измените только файл, который вы изменили) или " Live reloading (перезагрузите все приложение).

Ответ 18

Для пользователей CodePush

У меня возникла та же проблема, но она не обновляла мой код только в производственной сборке, она отлично работает при разработке.

Моя проблема заключалась в CodePush, оно обновляло мое приложение, потому что оно имело ту же версию, что и последняя целевая продакшен версия CodePush, и было обязательным обновлением (я не менял цель версии, потому что это было только для целей тестирования), затем я прокомментировал код CodePush на моем App.js, и он работает отлично.