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 и затем -
-
собственный пакет --platform android --dev false - входной файл index.android.js - вывод-вывод android/app/src/main/assets/index.android.bundle --assets-dest android/app/SRC/основные /RES/
-
CD/Android
-
./gradlew assemblyRelease -x bundleReleaseJsAndAssets
Ответ 11
Исправить это в 3 шага:
- Включить Live Reload
- Отключить горячую перезагрузку
- В настройках разработчика снимите флажок 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, и он работает отлично.