【问题标题】:Not able to run React-Native sample code on Android device无法在 Android 设备上运行 React-Native 示例代码
【发布时间】:2015-10-13 12:24:54
【问题描述】:

我是 javaScript 新手,React-Native 尝试创建演示应用程序。该应用程序在模拟器中正常运行。以下是相同的屏幕截图: Emulator Screenshot

如果我尝试在我的设备上运行应用程序,则应用程序不会运行。以下是相同的截图:

Device 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);

如果我在任何地方犯了错误,请告诉我。

【问题讨论】:

标签: javascript android ios react-native


【解决方案1】:

好的,我只是从那个帖子中复制它:)

将 JS 文件捆绑到您的 apk 中,同时让您的服务器运行(react-native 启动)将捆绑包下载到您应用的 assets 目录中:

以下是解决方案的链接:

react native android failed to load JS bundle

【讨论】:

    【解决方案2】:

    要在设备上运行应用程序,您需要使用开发服务器或离线包。

    这里的一切都为 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

    【讨论】:

      【解决方案3】:

      我也遇到了同样的问题,我用 start localhost server http-server -c-1 解决了这个问题,而不是运行这个命令 'adb reverse tcp:8081 tcp:8081' 之后运行 react-native run-android

      【讨论】:

        猜你喜欢
        • 2020-11-16
        • 1970-01-01
        • 2017-01-14
        • 1970-01-01
        • 1970-01-01
        • 2020-01-10
        • 2021-02-19
        • 2017-05-22
        • 1970-01-01
        相关资源
        最近更新 更多