无法在 Android 设备上 运行 React-Native 示例代码
Not able to run React-Native sample code on Android device
我是 javaScript 的新手,React-Native 尝试创建演示应用程序。应用程序 运行 在模拟器中正常运行。以下是相同的屏幕截图:
Emulator Screenshot
而如果我尝试在我的设备上 运行 应用程序,应用程序不会 运行。以下是相同的屏幕截图:
如果需要发布任何代码,请告诉我。我尝试搜索上述问题的解决方案,但找不到任何
以下是 JavaScript 代码:
/**
* Sample React Native App
* https://github.com/facebook/react-native
*/
'use strict';
var React = require('react-native');
var {
AppRegistry,
Image,
ListView,
StyleSheet,
Text,
View,
} = React;
var API_KEY = '7waqfqbprs7pajbz28mqf6vz';
var API_URL = 'http://api.rottentomatoes.com/api/public/v1.0/lists/movies/in_theaters.json';
var PAGE_SIZE = 25;
var PARAMS = '?apikey=' + API_KEY + '&page_limit=' + PAGE_SIZE;
var REQUEST_URL = API_URL + PARAMS;
var Button = require('react-native-icon-button');
var AwesomeProject = React.createClass({
getInitialState: function() {
return {
dataSource: new ListView.DataSource({
rowHasChanged: (row1, row2) => row1 !== row2,
}),
loaded: false,
};
},
componentDidMount: function() {
this.fetchData();
},
fetchData: function() {
fetch(REQUEST_URL)
.then((response) => response.json())
.then((responseData) => {
this.setState({
dataSource: this.state.dataSource.cloneWithRows(responseData.movies),
loaded: true,
});
})
.done();
},
render: function() {
if (!this.state.loaded) {
return this.renderLoadingView();
}
return (
<View style={styles.mainLayout}>
<Button
style={styles.button}
onPress={this._handlePress}>
color={"white"}
iconSize={20}
text={"Press me!"}
</Button>
<ListView
dataSource={this.state.dataSource}
renderRow={this.renderMovie}
style={styles.listView}/>
</View>
);
},
_handlePress(event){
console.log('Pressed');
},
renderLoadingView: function() {
return (
<View style={styles.container}>
<Text>
Loading movies...
</Text>
</View>
);
},
renderMovie: function(movie) {
return (
<View style={styles.container}>
<Image
source={{uri: movie.posters.thumbnail}}
style={styles.thumbnail}
/>
<View style={styles.rightContainer}>
<Text style={styles.title}>{movie.title}</Text>
<Text style={styles.year}>{movie.year}</Text>
</View>
</View>
);
},
});
var styles = StyleSheet.create({
container: {
flex: 1,
flexDirection: 'row',
justifyContent: 'center',
alignItems: 'center',
backgroundColor: '#F5FCFF',
},
rightContainer: {
flex: 1,
},
title: {
fontSize: 20,
marginBottom: 8,
textAlign: 'center',
},
year: {
textAlign: 'center',
},
thumbnail: {
width: 53,
height: 81,
},
listView: {
paddingTop: 20,
backgroundColor: '#F5FCFF',
},
mainLayout:{
flex: 1,
flexDirection: 'column',
justifyContent: 'center',
alignItems: 'center',
backgroundColor: '#F5FCFF',
},
button: {
padding: 10,
borderRadius: 5,
backgroundColor: '#272822',
color: 'white'
},
});
AppRegistry.registerComponent('AwesomeProject', () => AwesomeProject);
如果我有任何错误,请告诉我。
对于 运行 设备上的应用程序,您需要使用开发服务器或离线包。
ios 的所有内容都在这里解释:
https://facebook.github.io/react-native/docs/running-on-device-ios.html
此处为 Android:
https://facebook.github.io/react-native/docs/running-on-device-android.html#content
好的,我只是从那个 post 复制它:)
要将 JS 文件捆绑到您的 apk 中,同时让您的服务器 运行(react-native 启动)将捆绑包下载到您应用程序的资产目录中:
以下是link的解决方法:
我也遇到了同样的问题,我用 start localhost server http-server -c-1 解决了它,而不是 运行 这个命令
'adb reverse tcp:8081 tcp:8081' 之后 运行 react-native 运行-android
我是 javaScript 的新手,React-Native 尝试创建演示应用程序。应用程序 运行 在模拟器中正常运行。以下是相同的屏幕截图: Emulator Screenshot
而如果我尝试在我的设备上 运行 应用程序,应用程序不会 运行。以下是相同的屏幕截图:
如果需要发布任何代码,请告诉我。我尝试搜索上述问题的解决方案,但找不到任何
以下是 JavaScript 代码:
/**
* Sample React Native App
* https://github.com/facebook/react-native
*/
'use strict';
var React = require('react-native');
var {
AppRegistry,
Image,
ListView,
StyleSheet,
Text,
View,
} = React;
var API_KEY = '7waqfqbprs7pajbz28mqf6vz';
var API_URL = 'http://api.rottentomatoes.com/api/public/v1.0/lists/movies/in_theaters.json';
var PAGE_SIZE = 25;
var PARAMS = '?apikey=' + API_KEY + '&page_limit=' + PAGE_SIZE;
var REQUEST_URL = API_URL + PARAMS;
var Button = require('react-native-icon-button');
var AwesomeProject = React.createClass({
getInitialState: function() {
return {
dataSource: new ListView.DataSource({
rowHasChanged: (row1, row2) => row1 !== row2,
}),
loaded: false,
};
},
componentDidMount: function() {
this.fetchData();
},
fetchData: function() {
fetch(REQUEST_URL)
.then((response) => response.json())
.then((responseData) => {
this.setState({
dataSource: this.state.dataSource.cloneWithRows(responseData.movies),
loaded: true,
});
})
.done();
},
render: function() {
if (!this.state.loaded) {
return this.renderLoadingView();
}
return (
<View style={styles.mainLayout}>
<Button
style={styles.button}
onPress={this._handlePress}>
color={"white"}
iconSize={20}
text={"Press me!"}
</Button>
<ListView
dataSource={this.state.dataSource}
renderRow={this.renderMovie}
style={styles.listView}/>
</View>
);
},
_handlePress(event){
console.log('Pressed');
},
renderLoadingView: function() {
return (
<View style={styles.container}>
<Text>
Loading movies...
</Text>
</View>
);
},
renderMovie: function(movie) {
return (
<View style={styles.container}>
<Image
source={{uri: movie.posters.thumbnail}}
style={styles.thumbnail}
/>
<View style={styles.rightContainer}>
<Text style={styles.title}>{movie.title}</Text>
<Text style={styles.year}>{movie.year}</Text>
</View>
</View>
);
},
});
var styles = StyleSheet.create({
container: {
flex: 1,
flexDirection: 'row',
justifyContent: 'center',
alignItems: 'center',
backgroundColor: '#F5FCFF',
},
rightContainer: {
flex: 1,
},
title: {
fontSize: 20,
marginBottom: 8,
textAlign: 'center',
},
year: {
textAlign: 'center',
},
thumbnail: {
width: 53,
height: 81,
},
listView: {
paddingTop: 20,
backgroundColor: '#F5FCFF',
},
mainLayout:{
flex: 1,
flexDirection: 'column',
justifyContent: 'center',
alignItems: 'center',
backgroundColor: '#F5FCFF',
},
button: {
padding: 10,
borderRadius: 5,
backgroundColor: '#272822',
color: 'white'
},
});
AppRegistry.registerComponent('AwesomeProject', () => AwesomeProject);
如果我有任何错误,请告诉我。
对于 运行 设备上的应用程序,您需要使用开发服务器或离线包。
ios 的所有内容都在这里解释: https://facebook.github.io/react-native/docs/running-on-device-ios.html
此处为 Android: https://facebook.github.io/react-native/docs/running-on-device-android.html#content
好的,我只是从那个 post 复制它:)
要将 JS 文件捆绑到您的 apk 中,同时让您的服务器 运行(react-native 启动)将捆绑包下载到您应用程序的资产目录中:
以下是link的解决方法:
我也遇到了同样的问题,我用 start localhost server http-server -c-1 解决了它,而不是 运行 这个命令 'adb reverse tcp:8081 tcp:8081' 之后 运行 react-native 运行-android