可以将文章内容翻译成中文,广告屏蔽插件可能会导致该功能失效(如失效,请关闭广告屏蔽插件后再试):
问题:
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?
回答1:
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.
回答2:
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
回答3:
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.
回答4:
This worked for me.
Step 1)
rm -rf /usr/local/var/run/watchman && brew uninstall watchman && brew install watchman
Step2)
react-native start
回答5:
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
回答6:
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" />
回答7:
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/
回答8:
run the script below after that just do 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
回答9:
In my case, deleting below line in gradle.properties solved it.
org.gradle.configureondemand = true
回答10:
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
回答11:
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"
enter image description here