React Native环境搭建及配置问题

React Native环境搭建及配置问题,第1张

概述版本问题RN从0.60开始,Android平台移植到了androidx。如果不想用androidx,安装rn必须指定版本为0.59。$yarnaddreact-native@0.59.10对应的react版本为16.8.3$yarnaddreact@16.8.3参考:https://github.comeact-native-community/discussions-and-proposals/is 版本问题

RN从0.60开始,AndroID平台移植到了androIDx。

如果不想用androIDx,安装rn必须指定版本为0.59。

$ yarn add react-native@0.59.10

对应的 react版本为16.8.3

$ yarn add react@16.8.3

参考:https://github.com/react-native-community/discussions-and-proposals/issues/129

常见问题问题1
Unable to load script. Make sure you're either running a Metro server (run 'react-native start') or that your bundle 'index.androID.bundle' is packaged correctly for release.

已经添加了Network Security Config,但是还是报错。

这是因为adb连接电脑的端口不对。

修改端口

adb reverse tcp:8081 tcp:8081

参考:https://reactnative.cn/docs/running-on-device/#1-enable-app-transport-security

问题2

java.lang.UnsatisfIEdlinkError: Couldn’t find DSO to load: libhermes.so

出现场景

集成RN到已有项目,运行时出现。

E/AndroIDRuntime: FATAL EXCEPTION: create_react_contextProcess: com.ado.example, PID: 25851java.lang.UnsatisfIEdlinkError: Couldn't find DSO to load: libhermes.soat com.facebook.soloader.soLoader.doloadlibraryBySoname(Soloader.java:738)at com.facebook.soloader.soLoader.loadlibraryBySoname(Soloader.java:591)at com.facebook.soloader.soLoader.loadlibrary(Soloader.java:529)at com.facebook.soloader.soLoader.loadlibrary(Soloader.java:484)at com.facebook.hermes.reactexecutor.HermesExecutor.(HermesExecutor.java:20)at com.facebook.hermes.reactexecutor.HermesExecutorFactory.create(HermesExecutorFactory.java:27)at com.facebook.react.ReactInstanceManager.run(ReactInstanceManager.java:949)at java.lang.Thread.run(Thread.java:818)
原因

这是因为在React Native 0.60之后,新增了Facebook自研的Js引擎Hermes。没有在项目的build.gradle中配置Hermes的仓库,所以找不到so文件。使用RN创建新项目时,RN会自动为我们生成标准的build.gradle。

解决方式

修改androID根目录的build.gradle

...allprojects {    repositorIEs {        mavenLocal()        jcenter()        maven {            // All of React Native (Js, Obj-C sources, AndroID binarIEs) is installed from npm            url "$rootDir/../node_modules/react-native/androID"        }        maven {            // AndroID JsC is installed from npm            url("$rootDir/../node_modules/Jsc-androID/dist")        }        Google()    }}...

修改app目录的build.gradle

//最外层加上project.ext.react = [    enableHermes: false,  // clean and rebuild if changing]def JscFlavor = 'org.webkit:androID-Jsc:+'def enableHermes = project.ext.react.get("enableHermes", false);androID{  	.....}dependencIEs{  	.....    //在这里添加依赖配置    if (enableHermes) {        def hermesPath = "../../node_modules/hermes-engine/androID/";        deBUGImplementation files(hermesPath + "hermes-deBUG.aar")        releaseImplementation files(hermesPath + "hermes-release.aar")    } else {        implementation JscFlavor    }}

点击sync Now,再次运行项目,就不会报错了。

参考:https://github.com/facebook/react-native/issues/25986

总结

以上是内存溢出为你收集整理的React Native环境搭建及配置问题全部内容,希望文章能够帮你解决React Native环境搭建及配置问题所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/1062919.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-26
下一篇2022-05-26

发表评论

登录后才能评论

评论列表(0条)

    保存