Android解决调用JNI报java.lang.UnsatisfiedLinkError: No implementation found for的错误

2023-11-07

最近公司项目需求接入即时通讯功能,现在第三方的即时通讯做的比较完善,接入也很方便。最近在调试语音的时候遇到了一个.so库加载失败的问题,在网上查看都是说由于原有项目的so库和新添加的model的so库数量不一致。具体报错如下:

java.lang.UnsatisfiedLinkError: No implementation found for void com.moor.imkf.mp3recorder.util.LameUtil.init(int, int, int, int, int) (tried Java_com_moor_imkf_mp3recorder_util_LameUtil_init and Java_com_moor_imkf_mp3recorder_util_LameUtil_init__IIIII)
                                                                 at com.moor.imkf.mp3recorder.util.LameUtil.init(Native Method)
                                                                 at com.moor.imkf.mp3recorder.MP3Recorder.initAudioRecorder(MP3Recorder.java:164)
                                                                 at com.moor.imkf.mp3recorder.MP3Recorder.start(MP3Recorder.java:74)
                                                                 at com.m7.imkfsdk.recordbutton.AudioManager.prepareAudio(AudioManager.java:65)

最初以为是自己的so库找不到,我删掉重新加载发现还是同样的问题。百度查看说将自己的apk解压后找到lib文件夹下的so库,然后和项目里so库比较种类是否一致。于是我照着这个方法打了一个apk安装包,然后右键解压找到lib文件夹,发现里面的so库如图:

然而我项目里的so库如图:

通过解压apk得到的lib文件夹里的so库和我自己项目里用的so库数量和种类明显不一致,原因找到了,那么下面就是解决办法:

将项目里引用的library里的so文件复制到app下存放so库的位置,然后将app下的so库在复制到每个library下的so库位置。也就是合并app和每个library里面的so库,让app和每个library里面的so库在数量和种类都相同。

然后clean整个项目在重新编译一下就会发现问题解决了,如果对上述操作有不明白的地方,可以评论留言告知我,我会做详细解答。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Android解决调用JNI报java.lang.UnsatisfiedLinkError: No implementation found for的错误 的相关文章

  • jvm是如何处理异常的

    jvm发现运算是已经违反了数学运算规则 java将这种常见的问题进行描述 并封装成了对象叫做ArithmeticException 当除0运算发生后 jvm将该问题打包成了一个异常对象 并将对象抛给调用者main函数 new Arithme
  • Android JNI/NDK开发(2)JNI实现C/C++与Android/JAVA相互调用

    前言 一直觉得无论是从行业形式来看 还是从就业角度说 学习JNI NDK开发是一条必经之路 很多说Android和IOS几乎没有市场了 其实只能说现在开发APP的需求没那么多了 再加上之前培训机构疯狂向市场输出Android IOS开发人员
  • 安卓9.0适配方案和踩坑

    年初的时候就已经适配了安卓9 0 但由于业务需求一直没有使用上 前段时间发布了 结果有用户反馈在安卓9 0的手机上更新下载App发生了闪退 这个时候发现9 0对权限 加密和Apache HTTP client发生了相关变化 一 首先我遇到的
  • Android.mk 语法详解

    Android mk 语法详解 转 http blog sina com cn s blog 602f8770010148ce html 0 Android mk简介 Android mk文件用来告知NDK Build 系统关于Source
  • java.lang.unsatisfiedlinkerror解决方法

    有时候我们接入第三方sdk的时候 同时导入了一些so库 编译运行后发生会报以下异常 java lang unsatisfiedlinkerror 解决方法 在主工程app的build gradle中加入以下代码 作用是指定so库的位置 an
  • 关于Java调用dll的方法

    Java语言本身具有跨平台性 如果通过Java调用DLL的技术方便易用 使用Java开发前台界面可以更快速 也能带来跨平台性 Java调用C C 写好的DLL库时 由于基本数据类型不同 使用字节序列可能有差异 所以在参数传递过程中容易出现问
  • 【SpringMVC】JSON注解&全局异常处理机制

    欢迎来到我的CSDN主页 我是Java方文山 一个在CSDN分享笔记的博主 在这里 我要推荐给大家我的专栏 Spring MVC 无论你是编程小白 还是有一定基础的程序员 这个专栏都能满足你的需求 我会用最简单易懂的语言 带你走进Sprin
  • 在C/C++中调用Java代码

    JNI就是Java Native Interface 即可以实现Java调用本地库 也可以实现C C 调用Java代码 从而实现了两种语言的互通 可以让我们更加灵活的使用 通过使用JNI可以从一个侧面了解Java内部的一些实现 本文使用的环
  • Android JNI开发从0到1,java调C,C调Java,保姆级教程详解

    前些天发现了一个蛮有意思的人工智能学习网站 8个字形容一下 通俗易懂 风趣幽默 感觉非常有意思 忍不住分享一下给大家 点击跳转到教程 第一步首先配置Android studio的NDK开发环境 首先在Android studio中下载NDK
  • 关于java.lang.NoClassDefFoundError: Could not initialize class xxx错误的原因和处理办法

    关于NoClassDefFoundError错误出现的原因有多种 网上其他博主也给出各种答案 但说的都比较广泛 这里博主说一下由于初始化失败而造成的NoClassDefFoundError错误 博主在一个Test这个类中使用了静态代码块 类
  • 如何在Java项目中定义并调用自己编写的native方法?

    如何在Java项目中定义并调用C C 编写的native方法 开发工具 编写测试的java代码 编写C 代码 将dll文件链接到java项目中 总结 开发工具 IntelliJ IDEA 2020 用来编写java代码 Visual Stu
  • Android JNI(一):JNI基础概念

    本文讲述 NDK和JNI是什么 JNI的原理 JNI开发流程的步骤 认识JNI相关的代码语法 名称概念 什么是NDK NDK 其中NDK的全拼是 Native Develop Kit Android NDK 就是一套工具集合 允许你使用C
  • Java调用Native方法

    Java调用Native方法 Java中支持调用其他语言 C C 想要实现调用 需要进行以下几步操作 编写Java类并声明Native方法 package my mynative background public class Studen
  • C/C++在Android开发中的应用

    JNI开发系列阅读 JNI与底层调用1 http blog csdn net axi295309066 article details 60758515 JNI与底层调用2 http blog csdn net axi295309066 a
  • 【VS2010学习笔记】【异常处理】general error c1010070: Failed to load and parse the manifest.

    在VS2010编程中 有时编译会遇到这样的错误 general error c1010070 Failed to load and parse the manifest 解决方法就是在解决方案中将后缀名为manifest的文件删除 再编译即
  • python3:Python 异常处理以及with 语句的使用

    try except else 语句 是处理异常公式 try 是有可能抛异常的代码块 except 抓取异常的类型 else 是指当没有抓到抛错 就运行这块代码 请看下下边的例子 try print 抓取的有可能的代码块 raise IOE
  • 异常处理UncaughtExceptionHandler

    自动捕获未知异常的主要思路是 在Application注册一个实现了UncaughtExceptionHandler的对象 然后在该对象中调用方法Thread setDefaultUncaughtExceptionHandler设置未知异常
  • 导致java.lang.UnsatisfiedLinkError错误的一种解决办法

    欢迎转载请注明出处http blog csdn net ning gg article details 53641254 在程序中加入so文件导致java lang UnsatisfiedLinkError错误的一种解决办法 可能这个解决办
  • Thread.UncaughtExceptionHandler

    1 自定义Application继承Application 在清单文件中将默认的Application的android name 替换成自定义的Application对象名称即可 在Oncreate中写入要实现的内容 2 在编写APK程序时
  • Ubuntu下,Java中利用JNI调用codeblocks c++生成的动态库的使用步骤

    1 打开新立得包管理器 搜索JDK 选择openjdk 6 jdk安装 2 打开Ubuntu软件中心 搜索Eclipse 选择Eclipse集成开发环境 安装 3 打开Eclipse File gt New gt Java Project

随机推荐

  • 2022年华为杯中国研究生数学建模竞赛

    2022年华为杯第十九届中国研究生数学建模竞赛结果已出 我已经放到了百度网盘链接 提供给大家 希望大家都能有满意的结果 链接 https pan baidu com s 1mi3aCwDQFCgNa7uSc5xGqA pwd q8b6 提取
  • 类与对象(3)

    目录 1 操作符重载 1 1 赋值运算符重载 1 2 操作符重载 1 3 操作符重载 1 4 lt 操作符重载 1 5 lt 操作符重载 1 6 gt 操作符 1 7 gt 操作符 1 8 前置 和后置 1 9 前置 和后置 2 编写一个D
  • SpringBoot - 配置文件加载位置与优先级

    1 项目内部配置文件 spring boot 启动会扫描以下位置的application properties或者application yml文件作为Spring boot的默认配置文件 file config file classpat
  • 解决element-ui消息提示$message重叠问题

    在进行表单校验的时候 当触发两个提示消息的时候会出现上面的叠加情况 没有将提示消息分开显示 这样就给用户造成不好的视觉效果 我们的预期效果是达到上面的显示效果 就是在进行提示的时候 如果叠加就需分开显示 解决方案 第一种解决方案 第二种解决
  • Hibernate 一级缓存源码级

    你是否遇到过这类情况 case 1 查询返回10条数据 其他程序修改数据 再次查询返回的数据并没有被修改 case 2 查询返回5条数据 修改已有5条数据的部分字段 并新增5条数据 再次查询 读取到10条数据 已被查询过的5条数据没有被更新
  • Python3中内置函数callable介绍

    Python3中的内置函数callable接受一个对象参数 如果此对象参数看起来可调用 则callable函数返回True 否则返回False 如果返回True 则调用仍有可能失败 但如果返回False 则调用对象将永远不会成功 类是可调用
  • Windows下如何确定用户创建时间

    1找到用户对应profile目录 在win7下一般在users目录下 看目录的创建时间就能知道用户的第一次登入时间 但是因为是第一次登入时间 如果账户创建后没有登入过 就不会有这个目录 而且如果登入时间一般也会晚于创建时间 比如当前使用帐号
  • RSA非对称加密使用方式与原理浅析

    一 非对称加密的简述 非对称加密 顾名思义加解密用的不是同一个密钥 如此我们也能很通俗的对照理解对称加密 显然它后者是加解密为同一个密钥 那么非对称加密就得用俩个密钥 一个叫公钥 任何人都能够去获取 一个叫私钥 不会四处乱传输 保留在一个认
  • tslib编译出错解决(gcc版本问题)

    交叉编译器 arm none linux gnu eabi 4 2 0 configure prefix opt tslib host arm linux ac cv func malloc 0 nonnull yes 之前报错 usr i
  • 【CCF- CSP 2022 6-01 归一化处理 满分题解】

    代码实现 include
  • 在Vue中调用微信的扫描二维码功能

    在Vue中调用微信的扫描二维码功能 步骤 新建vue文件 这里采用mint的标签库 就一个按钮 关键代码
  • 在pycharm中新建一个虚拟conda环境的步骤

    不用命令行 自己在创建新项目时手动创建新的conda虚拟环境 1 先在conda executable下选择conda exe 此执行文件在scripts下 系统一般自动默认此项 location 项目文件自动到anaconda的envs下
  • STM32第一天之GPIO寄存器与位带操作相关注意事项

    1 STM32存储器映射地址 2 常用到的基地址如下 3 系统框架结构 4 对于地址定义的时候需要加小括号保持整体性 片上外设基地址 2 define PERIPH BASE unsigned int 0x40000000 3 4 总线基地
  • ES7.17版本terms查询性能问题

    背景 1 对于7版本 大版本 集群希望只维护一个版本 最终选择7 17 对同大版本的7 5版本集群进行升级 2 根据官方描述 id放到堆外性能损失非常小可以忽略 且对BKD进行了优化 3 升级完成 一段时间之后 收到用户报障 4 抽样检查了
  • Android屏幕适配(使用ConstraintLayout),kotlin数组排序

    教程如下 1 拉两根横向参考线分别定在20 65 博主计算所得 2 然后拉一个imageView进入布局 选择自己要显示的图片 3 将此imageView的上下参照物设置为两参照线 并将左右参照物设置为父容器 将其宽设置为wrap cont
  • pyspark结合hive使用 spark on hive方式开发代码附上代码实例

    1 在CDH中已经添加了hive 2 配置hive中的hive site xml参数 opt cloudera parcels CDH lib hive conf hive site xml 3 配置spark中的hive site xml
  • flask中ORM的使用

    目录 1 ORM是什么 2 flask sqlalchemy介绍及安装 3 设计数据库模型并创建表 4 使用ORM插入 修改 删除数据 5 使用ORM查询数据并展示 1 ORM是什么 对象关系的映射 它的作用是在关系型数据库和对象之间作一个
  • 前端三件套原理遗忘复习(一)

    1 BOM事件 事件就是用户或浏览器自身执行的某种动作 事件可能是用户在某些内容上的点击 鼠标经 过某个特定元素或按下键盘上的某些按键 事件还可能是 Web 浏览器中发生的事情 比如说 某个 Web 页面加载完成 或者是用户滚动窗口或改变窗
  • 在切瓦片时transform的包围盒会偏移一个位置,查看这个是否需要在坐标上减去该值,或者直接用tmspackage

    这个用apply transfrom 即可 因为transform后面addChild的是整个几何体 关键是如何判断整体的包围盒 所有的几何体包围盒 这样四叉树或者八叉树才行 如果说对单个模型的八叉树切片是对drawable的切片 那么多个
  • Android解决调用JNI报java.lang.UnsatisfiedLinkError: No implementation found for的错误

    最近公司项目需求接入即时通讯功能 现在第三方的即时通讯做的比较完善 接入也很方便 最近在调试语音的时候遇到了一个 so库加载失败的问题 在网上查看都是说由于原有项目的so库和新添加的model的so库数量不一致 具体报错如下 java la