react native开发之expo的使用

一. 背景

react native官方现在推荐的项目构建方式是create-react-native-app,即简称CRNA,并且建议使用expo这个APP来实时查看效果。使用CRNA构建项目后,命令行输入npm start,随即会为开发者创建一个开发服务器,并打印出大大的二维码,使用expo扫码,即可预览项目,不过真的这么丝滑吗,使用中还是遇到了一些问题。

二. 踩坑记

手机和电脑均连接着同一WiFi热点,手机设备打开expo,扫描QR code,顺便吐槽下expo的扫码挺抽风的,有时候很快,有时候放弃用手输,然后界面中出现了

Something went wrong:couldn’t load exp://XXXXX network response timed out.

点击下方的view error log

uncaught error java.net.sockettimeoutexception:timedout

在网上查了下,GitHub上react相关项目中有不少issue说的就是这个问题(https://github.com/react-community/create-react-native-app/issues/270),就不卖关子了,这个问题的产生原因如错误提示,想必是和网络有关,有经验眼尖的同学就会发现run start后给出的手输访问地址,用的是以太网适配器的IP,而手机设备和电脑设备都是无线局域网连接,应该使用的是无线局域网IP,问题就是expo适配器默认选择的是以太网适配器,解决方法就是在explore手输你的无线局域网适配器IP加端口号。

本以为就可以享受丝滑了,但手输后又出现了如下报错:

20.0.0 is not a valid SDK version on Android only.后面是推荐使用啥啥啥版本的SDK

看到这个我还以为说的是Android SDK,然后在Android SDK manage中我并没有看到什么20.0.0的版本,也多安装了几个,但问题依旧,然后又去Google上搜寻了,遇到这个问题的人好像挺少的,GitHub上就看到一个相关的issue,里面提到的方法是卸载重装最新版,excuse me?还能有这种操作,服气。然后为了下到的是最新版,我就试图在expo官网上下载,expo的下载是链接到Google play上的,然后就屁颠屁颠下载了,手机上、模拟器上卸载重装了两次,发现还是一样的报错,只是20.0.0变成25.0.0,郁闷的是推荐版本中出现了20.0.0,这……就让我很郁闷这个SDK说的是啥了……

最后在stackoverflow上的一个问题中了解到,这个是expo自己的SDK,可以看看这个链接https://expo.io/tools#sdk,就是各种格式为XX.0.0 SDK版本,这应该是和不同rn版本之间有关联,所以才会有报错,我用的rn版本是0.52.0,(查看rn版本方法:react-native –version,前提是安装了react-native-cli)。所以根据expo SDK上的说明,我需要的SDK版本>=25.0.0,那么安装最新版理论上是能解决问题的,那么为什么却失败了呢?原来是expo上链到Google play的下载不是最新版的,这个真的坑,还是上面的链接,如下图,不要点击Android APP下载
react native开发之expo的使用_第1张图片
最后,搞定。

你可能感兴趣的:(react-native)