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下载
下载位置
最后,搞定。

  • 4
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
如果您的React Native项目是原生的,而不是使用Expo构建的话,那么在将TensorFlow Lite集成到项目中时,需要执行以下步骤: 1. 安装TensorFlow Lite:您可以使用以下命令在React Native项目中安装TensorFlow Lite: ``` npm install @tensorflow/tfjs @tensorflow/tfjs-react-native @tensorflow/[email protected] ``` 2. 在iOS项目中添加TensorFlow Lite库:在iOS项目中,您需要将TensorFlow Lite库添加到项目中。您可以使用以下命令从CocoaPods安装TensorFlow Lite: ``` cd ios && pod install ``` 3. 将TensorFlow Lite模型添加到项目中:将TensorFlow Lite模型文件(.tflite)复制到React Native项目的assets文件夹中。 4. 在React Native应用程序中加载TensorFlow Lite模型:您可以使用以下代码加载TensorFlow Lite模型: ```javascript import { load } from "@tensorflow/tfjs-react-native"; async function loadModel() { const modelJson = require("./assets/model.json"); const modelWeights = require("./assets/model_weights.bin"); const model = await load({ modelUrl: modelJson, weightsUrl: modelWeights, }); return model; } ``` 此代码将加载您的TensorFlow Lite模型文件(model.json和model_weights.bin)并返回一个TensorFlow模型对象。 5. 使用TensorFlow Lite模型进行推理:您可以使用以下代码将输入数据传递给TensorFlow Lite模型进行推理: ```javascript const inputTensor = tf.tensor2d([inputData]); // inputData是您的输入数据 const outputTensor = model.predict(inputTensor); const outputData = outputTensor.dataSync(); outputTensor.dispose(); ``` 此代码将创建一个输入张量对象,将其传递给TensorFlow Lite模型进行推理,并返回一个输出张量对象。然后,您可以使用outputTensor.dataSync()方法从输出张量对象中提取结果。 以上是将TensorFlow Lite集成到React Native原生项目中的基本步骤。请注意,步骤2和步骤3在Android项目中可能会略有不同。在Android项目中,您需要将TensorFlow Lite库添加到Gradle构建文件中,并将模型文件复制到assets文件夹中。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值