React-Native集成Android现有项目踩坑-

【React Native 小记】解决 Android 打包后闪退Error: E/SoLoader: couldnot find DSO to load: libhermes.so 当前使用RN版本号:0.62.2 ,将项目打包release 的 apk 时 ,安装后打开App闪退,完整错误如下: 2020-06-04 17:28:25.648 1375-1391/? E/SoLoader: couldn't find DSO to load: libhermes.so --------- beginning of crash 2020-06-04 17:28:25.649 1375-1391/? E/AndroidRuntime: FATAL... 阅读详情

问题1 java.lang.UnsatisfiedLinkError: couldn’t find DSO to load: libhermes.so

按照官方文档配置后启动服务yarn start,然后运行项目报以下错误

E/AndroidRuntime: FATAL EXCEPTION: create_react_context
Process: com.ado.example, PID: 25851
java.lang.UnsatisfiedLinkError: couldn't find DSO to load: libhermes.so
at 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$5.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】在原生项目中集成之坑点总结 Integration With Exist apps 在原生项目中,集成React Native框架,部分功能是用RN进行开发。包括依赖引入,包重复等问题进行总结,希望能帮到大家。 阅读详情

相关推荐

Android之原生项目集成React Native

上节我们简单讲解在一个用React Native(RN)创建的项目中如果引用安卓原生的控件,这节简单介绍下,在一个已存在的安卓原生应用中如何集成开发RN,如今的产品几乎都是原生所写,今后的开发方向肯定大多会去集成RN或者别的框架而并非推到重来,所以这块的内容也是开发必须要掌握的知识。

jj120522的专栏 8562

java.lang.UnsatisfiedLinkError: couldn’t find DSO to load: libhermes.so

PTION: create_react_context Process: com.xj.rnbearinandroid, PID: 31574 java.lang.UnsatisfiedLinkError: couldn’t find DSO to load:libhermes.so at com.facebook.soloader.SoLoader.doLoadLibraryBySoName(...

Bearin的博客 5242

Android原生项目集成React Native

开发环境准备首先按照开发环境搭建教程来安装React Native在安卓平台上所需的一切依赖软件(比如npm)。在应用中添加JS代码在项目的根目录中运

平凡之路 6552

react-native AndroidRuntime: FATAL EXCEPTION: create_react_context

React-native Android 端报错 新版本文件名已经从index.android.js变为了index.js; 在项目根目录执行: 根目录cmd运行命令: react-native bundle --platform android --dev false --entry-file index.js --bundle-output android/app/src/main/assets/index.android.bundle --assets-dest android/app/src/ma

再也不做的事 1011

java.lang.UnsatisfiedLinkError: couldn‘t find DSO to load: libhermes.so

添加 maven { // Android JSC is installed from npm url("$rootDir/../node_modules/jsc-android/dist") }

闫瑞锋的博客 2176

现有的Android 原生项目里面集成RN 页面的学习和踩坑之路

1 首先创建一个空目录用于存放React Native项目,然后在其中创建一个/android子目录,把你现有的Android项目拷贝到/android子目录中。 2 配置ReactNative的js环境 我们进入项目根目录,接下来我们开始在终端输入: npm init 一路先去会产生在项目根目录下创建一个名为package.json的空文本文件 3 添加ReactNative到

qq_30519365的博客 3616

android couldn't find taskid=3,Android java.lang.UnsatisfiedLinkError: couldn't find DSO to load

问题I just set up a brand new react-native project (0.62). Running a fresh debug build works just fine.I set up signing following the documentation: https://reactnative.dev/docs/signed-apk-android, and ...

weixin_35828992的博客 532

手把手教你用STM32的ADC读取PT100模块,实现高精度温度采集(附完整代码)

本文详细介绍了如何利用STM32的ADC模块读取PT100温度传感器信号,实现高精度温度采集系统。从硬件选型、ADC配置校准到温度计算算法和软件滤波技术,提供完整的实现方案和优化技巧,帮助工程师快速构建稳定可靠的温度监测系统。

weixin_29185199的博客 347

Android 集成React Native 到现有的项目踩坑记录

集成步骤 官方文档:https://facebook.github.io/react-native/docs/0.54/integration-with-existing-apps 借鉴博客:https://blog.youkuaiyun.com/u012455070/article/details/78926526 (1)配置react-native的开发环境 (2)创建一个react-n...

小人物、平凡,世界很大我只想在家 1478

BUCK降压斩波电路设计实战:从IGBT选型到续流二极管优化

本文详细解析了BUCK降压斩波电路的设计实战,从IGBT选型到续流二极管优化,涵盖了关键参数设计、调试技巧及电磁兼容问题解决方案。通过实际案例和数据对比,帮助工程师高效完成DC-DC转换电路设计,提升系统性能和可靠性。

weixin_29253711的博客 95

【SWAT水文模型】SWAT-CUP参数率定与模型验证实战指南

本文提供了SWAT水文模型参数率定与模型验证的完整实战指南。详细介绍了如何使用SWAT-CUP工具,特别是SUFI-2算法,进行自动化参数校准,并阐述了模型验证的关键步骤以避免过度拟合。内容涵盖从工程搭建、核心参数选择、迭代优化到结果分析与常见问题排查的全流程,旨在帮助用户提升SWAT模型模拟的准确性与可靠性。

weixin_29072299的博客 499

Android现有项目中集成react native

文章写的不是很好,各位大佬不要嘲笑我。希望小弟的文章能给到那么一丢丢的灵感。 最近集成rn,遇到了不少的坑,在此总结一下。 1.安装必要依赖node 这里建议大家不要安装最新版本的Node.js,如果react native太低的而node太高的话,会出现版本过高问题,然后出现一系列看不懂的错误。 由于我自身的android项目build版本过低,所以安装react native的时候我安装的是0.55.4版本,就是因为版本问题被折磨了三天,唉。如果android版本不冲突的话,就正常安装react nat

weixin_43838793的博客 842

如何加快香山处理器Chisel->Verilog编译速度

相比使用默认的scala firrtl complier,使用CIRCT能够将香山代码编译到Verilog的速度提高50%左右。在执行make命令时加上MFC=1,例如make verilog MFC=1或make emu MFC=1。在本地从源码编译CIRCT,在编译完成后将circt/bin路径加入PATH中。使用GraalVM免费版作为JVM编译香山比OpenJDK快10%-20%。我们推荐使用GraalVM代替OpenJDK。使用CIRCT编译香山。

专业技术人员的归宿 862

现有Native项目的React Native启动

React Native — the prodigal son for all mobile development! For a long while now I had been putting off my encounter with React Native just because of all the horror stories surrounding it. In the pas...

weixin_26739079的博客 1109

squidpy 教程 1:在 AnnData 和 Squidpy 中导入空间数据

这些是 10x Genomics Visium 的 Space Ranger 输出提供的 keys,因此是第一个被采用的 keys。在这种情况下,我们假设空间坐标与像素具有相同的比例,因此我们将该值设置为 1。为此,我们将使用模拟数据集,并通过示例展示您应该注意的重要细节,以便利用 AnnData-Scanpy-Squidpy 生态系统的全部功能。并不是绝对必要的,但会节省您大量的输入,因为它是 Squidpy 和 Scanpy 的默认值。正如你所看到的,空间坐标被缩小了,图像被“放大”了。

🧑‍🎓 博士研究生在读 🔬 分享生物信息学、神经生物学方面的知识 💬 合作请在后台留言 2256

DiffusionDrive实战:如何用截断扩散模型3个月搞定自动驾驶轨迹规划(附代码)

本文详细介绍了如何利用DiffusionDrive截断扩散模型,在三个月内快速构建端到端的自动驾驶轨迹预测系统。内容涵盖从环境搭建、数据处理、模型架构解析到训练调参和推理优化的完整实战流程,并提供了关键代码示例,旨在帮助开发者高效实现高质量的自动驾驶轨迹规划。

weixin_35578748的博客 146

Android项目中集成React Native

React Native是非常强大的,但有的时候我们可能并不需要从0开始去开发一个React Native应用,而是需要把它集成到我们现有的Android工程中去,去添加单个的React Native View。本章将主要介绍在原生Android中集成React Native。 可以参考官方文档或中文文档。创建Android工程新建一个ReactNativeDemo的Android工程作为已有

寒江蓑笠的专栏 3537

《点云进阶》专栏文章目录

点云进阶》专栏文章目录

点云侠的博客 4904

现有Android项目 集成 React Native (一)

(测试 是否可以启动服务 暂时不要run android 因为 app还没配置依赖)生成 node_modules 文件和package-lock.json 文件。(为了解决 此文件 丢失导致 error no Metro found。(解决项目启动 找不到默认 android路径 现有项目集成路径变了)生成 package.json 文件。

huoruohe的博客 992

SMART200如何实现多次调用子程序带定时器功能

1、西门子200PLC的子程序由于很多限制条件,如果希望建立一个可以多次调用的子程序,那么这个子程序里是不能含有定时器指令的,所以我们只能退而求其次了。建议将沿指令(上升沿、下降沿)放在多次调用子程序的外面。 2、可以提供不同的时基,提供不同时间的定时 3、实现秒定时 5、子程序内部: STL代码: 1、时基信号由外部提供、 可以提供不同的时基信号 2、实现循环定时开关 LD #Start:L0....

RXXW_Dor的博客 1万+

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

react native新建项目运行在安卓设备上

最近编辑于2018年6月29日 一、 根据http://facebook.github.io/react-native/docs/getting-started.html或者https://reactnative.cn/docs/0.51/getting-started.html先安装好对应软件以及配置好相应环境。 二、 1、新建(不含android和ios包的)项目:在终端输入npm ...

xydzjnq的博客 2321

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

React Native 集成到已有项目

前言       React Native已经出现很久了,有很多应用也在进行尝试,前面我们也讲述了怎么创建React Native工程以及怎么搭建原生语言与js的开发环境。       但是在实际应用中,很多项目都不是从零开始的,而是在已有项目中进行尝试,这就需要将React Native集成到已有项目,这里我们就来讲讲怎么集成到已有项目。需求       这里我们会用Android Studio创

freeCode 7510

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

将React Native集成到现有原生应用

把 React Native 组件集成到现有 Android 应用

weixin_42169702的博客 1276

React Native踩坑:集成到现有Android原生应用、RN与Android相互调用

React Native踩坑:集成到现有Android原生应用、RN与Android相互调用前言效果搭建开发环境集成到现有Android原生应用创建项目结构安装 React 和 React Native 模块把 React Native 添加到 Android 应用中添加依赖配置权限Network Security Config (API level 28+)编写 React Native 组件A...

杨迪龙的博客 2978

集成 React Native 到现有Android项目

ReactNative系列-Android混合开发(一) ReactNative混合开发,Facebook官网文档比较精简,坑比较多,根据此文档,作为初学者并不能顺利的将ReactNative引入Android项目,且不能了解ReactNative是以一种怎样的形式存在Native项目中。 此为开篇,解说官方引入方案,附带了我的踩坑经验,引导小诀窍,让你傻瓜式一键集成ReactNative。后续文章会介绍云集项目中React的实践,优化方案。这是一篇入门篇,没有门槛,何来高楼。 希望这一个系列的React

虚无世界的专栏 1180
上一篇: Glide 4.9使用placeholder()占位图功能,部分图片无法下载更新
下一篇: Coordinatorlayout+AppBarLayout布局中使用TabLayout在上滑到顶部是会产生阴影
Gn____
博客等级 码龄9年 17粉丝 16原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值