React Native 开发中遇到的问题

1:当在项目目录下运行Flow命令报错:
       Wrong version of Flow. The config specifies version ^0.45.0 but this is version 0.49.0 Could not start Flow       server!
       解决办法:
      运行如下命令:  npm install flow-bin@0.45.0 -g
2:  运行Androd版本时遇到
      SDK location not found. Define location with sdk.dir in the local.properties file or with an ANDROID_HOME 
      environment  variable.
     
      解决办法:
      设置Android sdk 环境变量:
      方法一:
      $ cd (进入用户登陆目录)
      $ ls –al .bash_profile(.bash_profile为隐藏文件,因此要用ls –a命令查找)
      $vi .bash_profile(用vi编辑.bash_profile)
      方法二:
      $ cd (进入用户登陆目录)
      $ touch .bash_profile  
      $open -e .bash_profile 
      将Android sdk设置加入  .bash_profile 中:
      export ANDROID_HOME=/Users/scofield/Library/Developer/Xamarin/android-sdk-macosx/
      export PATH=${PATH}:${ANDROID_HOME}/tools
      export PATH=${PATH}:${ANDROID_HOME}/platform-tools
      验证是否配置成功:
      运行adb -version命令
      Android Debug Bridge version 1.0.31  
      运行 $android
      会打开Android SDK Manager窗口
3:运行run命令时报:
       Packager can't listen on port 8081
      解决办法:
      首先找出哪些应用在使用8081端口
      运行命令: lsof  -i :8081
      删除相关进程:kill pid
4: React-Native到0.44版本后Navigator 不能用的问题
      Navigator is deprecated and has been removed from this package. It can now be installed and imp orted from react-native-deprecated-custom-components instead of react-native. Learn about alternative navigation solutions at  http://facebook.github.io/react-native/docs/navigation.html
      解决办法:
     1.在项目根目录下运行如下命令:
          npm install react-native-deprecated-custom-components --save
     2:在js文件中加入
          import NavigationExperimental from 'react-native-deprecated-custom-components';
          并将 NavigationExperimental.Navigator替换Navigator
5: Android NDK 下载后的bin文件Mac下解压方法:
       1.获取文件权限
            chmod a+x android-ndk-r10c-darwin-x86_64.bin
       2. 解压出文件

            ./android-ndk-r10c-darwin-x86_64.bin    

6:在调用this.setState()方法时报  undefined is not a function ( evaluating setState)

   需要将点击事件方法申明 this.onPress = this.onPress.bind(this);或者在点击事件中写成

   onPress={this.onPress.bind(this)}

7:在start packager时出现:Packager cann't listen on port 8081

   是由于之前启动的Packager还在运行,所以需要关闭它。

   首先查看哪些进程在占用8081端口

   lsof -i :8081

   然后shut down the other process

   kill -9 PID

Packager can't listen on port 8081
React Native Packager
3:32:03 PM
Most likely another process is already using this port
React Native Packager
3:32:03 PM
Run the following command to find out which process:
React Native Packager
3:32:03 PM
   lsof -i :8081 
React Native Packager
3:32:03 PM
Then, you can either shut down the other process:
React Native Packager
3:32:03 PM
   kill -9 <PID>

8: 运行程序时,遇到异常如下异常:

   

    一般有两种情况:

      (1)not register it in index.android.js / index.ios.js or name is wrong

                default class Test extends Component
                AppRegistry.registerComponent('Test', () => Test); 

        (2)  打开了多个终端,都在运行同个App. 需要按照问题七的方法去kill掉其他的进程

9: IOS真机测试运行的时候遇到如下问题:


1.mac电脑设置了防火墙 ------解决方案,在系统设置里关闭防火墙
2.node或者npm的版本有问题------解决方案,全部更新至最新的版本

3:Mac的IP地址会自动变动

    解决方案,将jsCodeLocation做相应的调整,jsCodeLocation = [NSURL URLWithString:@"http://192.168.206.27:8081/index.ios.bundle?platform=ios&dev=true"];

4:还有一个就是iOS9的网络访问问题

   解决方案,Xcode项目的plist文件里已经有App Transport Security Settings,关键是默认的设置是只允许localhost访问不允许别的访问,那么就得修改下这儿

 

10:iOS真机运行时报如下错误:

    

    是由于Identification.h文件没有相应的.m文件。

11: 导入第三方库在import时会出现如下错误:

      Lexical or Preprocessor Issue 'xxx.h' file not found    

     网上各种方法都尝试了还是不行,最后直接把第三方库拖入Library中解决问题,如下:

    

    

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值