React native run-android do not updating modified code
AndroidReact NativeNpmReact Native-AndroidAndroid Problem Overview
I am using React native 0.52.0 and react-native-cli 2.0.1 on my Windows PC for android development. Despite all the changes i have made. When I run react-native run-android
, it builds successfully but when I run it, I get the default react native screen.
The result when I run react-native run-android
-
The app I get-
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>
)
}
When i ran react-native init albums
, it was just an index.js file that was created, there was no index.android.js or index.ios.js file
What am I doing wrong?
Android Solutions
Solution 1 - Android
Assuming that you are in the right folder, try to do this:
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/
if you have index.android.js, do this instead:
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/
Then just execute react-native run-android.
Solution 2 - Android
SOLUTION
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
OUTPUT will be :
`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
and after
Run react-native run-android
again, you will find your modification work.
https://lengerrong.blogspot.am/2018/01/react-native-run-android-do-not.html
Solution 3 - Android
This worked for me. Step 1)
rm -rf /usr/local/var/run/watchman && brew uninstall watchman && brew install watchman
Step2)
react-native start
Solution 4 - Android
You are probably updating the wrong file and not calling it in the AppRegistry class.
Check (or post) your full index.android.js and make sure that the file that it is invoking and importing is the one you are actually modifying.
Solution 5 - Android
in your terminal window go to your project folder and than try this command
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/
Solution 6 - Android
Open package.json file and update this code.
"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"
},
Assuming that you are in the right folder, try to do this:
Run this command only it will automatically both commands.
npm run android
Solution 7 - Android
Run the script:
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
After that, just do:
$ gradlew clean
$ react-native link
Solution 8 - Android
This comment on github fixed my problem.
> @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
Solution: DELETE .git/index.lock
file
## root app dir
rm -f .git/index.lock
Solution 9 - Android
This worked for me:
In your project folder run this
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
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
Run react-native run-android again
I share the link where i found this solution: https://lengerrong.blogspot.com/2018/01/react-native-run-android-do-not.html
Solution 10 - Android
For CodePush users
I was having this same problem but it didn't update my code just on a production build, it works fine in development.
My problem was CodePush, it was updating my app because it had the same version than the last CodePush release target version and it was a mandatory update (I didn't change the version target because it was just for testing purpose), then, I commented the CodePush code on my App.js and it works perfectly.
Solution 11 - Android
After trying @SmoggeR_js answer and still if you have the same problem try following (Assuming that you have created keys and already signed the apk)
- Delete
build
insideandroid/app
folder - Delete
build
insideandroid
folder - run
rm -rf $HOME/.gradle/caches/
to delete cache - Open
build.gradle
-->android/app/build.gradle
- comment out this line
apply from: "../../node_modules/react-native/react.gradle"
- Delete
index.android.bundle
file fromassets
folder( android/app/src/main/assets/index.android.bundle)
- run following command
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 --variant=release
(you have to generate signed keys and all the keys should updated in the gradle file ref (https://s-pace.github.io/react-native/docs/signed-apk-android.html)
Solution 12 - Android
In my case, deleting below line in gradle.properties solved it.
org.gradle.configureondemand = true
Solution 13 - Android
For me the problem was that I had removed internet permissions from my AndroidManifest.xml (since it technically wasn't needed). React Native uses that permission to connect your app to the development machine (and enable live-debugging).
<uses-permission android:name="android.permission.INTERNET" />
Solution 14 - Android
Open your Android Studio -> "Tools" menu -> "AVD manager" and right click the emulator you are using, choose "Wipe Data" then "Cold Boot Now" should solve the problem.
Solution 15 - Android
If you are using index.android.js then follow the following steps:
Delete index.android.bundle within android/app/src/main/assets and then -
-
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/
-
cd ./android
-
./gradlew assembleRelease -x bundleReleaseJsAndAssets
Solution 16 - Android
Fix it in 3 steps:
- Enable Live Reload
- Disable Hot Reloading
- In Dev Settings, uncheck JS Dev Mode
Now your app automatically updating everytime you made changes to your codes.
Solution 17 - Android
Silly mistake by me that not to save edits of App.js. After Saving data will reflect :)
Solution 18 - Android
Try this
cd .git (in your react-native folder)
rm index.lock
and restart metro bundler i.e. react-native start
wallaa!!...
Solution 19 - Android
> there was no index.android.js or index.ios.js file
In this case you have to follow the instructions on your mobile/emulator as below:
After saved your App.js
, remember to type twice R
in uppercase
For make it automatically changes, on Android emulator press CTRL + M
(CMD + M
on MacOS) or shake the Android device which has the running app and select Hot reloading
(keep current state, change only the file you have changed) or Live reloading
(reload the entire app).
Solution 20 - Android
In my case when I disable debugging then it updates. So this is my solution.
in Chrome dev tools > Network > Disable cache Hope that shell work for you
Solution 21 - Android
In case you are using "codepush".
I tried for two hours now to figure out why my Android version is always rolling back to the old code and doesn't show the new features.
The reason was an old CodePush which leads to downgrading the app.
Solution 22 - Android
Solution 23 - Android
In your project directory, there is package.json file. You can add following code snippet in that json file under scripts:. After that you can run application using one command that is npm run android-windows
. To work fine you should add below code script.
"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"