【Android】使用native开发遇到的bug---java.lang.UnsatisfiedLinkError: No implementation found for

2023-11-16

今晚终于解决了一个困扰我三天的bug,就是这个java.lang.UnsatisfiedLinkError: No implementation found for,感觉人生达到了巅峰,特此记录下…

前几天老师给我一个项目,让我实现一个将视频下载到本地的功能,顺便给了我一个demo,让我先看看demo里的代码,打开demo的工程文件,费了好大劲才编译通过(AndroidStudio导入项目各种问题),在手机上一运行发现居然全是韩文,尝试着瞎点了几下发现没法运行,demo应该和实验室项目一样是一个播放监控录像的APP,但是没有摄像头的IP地址和账号密码没法使用,只好硬着头皮去看代码,结果那demo代码乱的不行,根本没有分类,所有的类、活动全在一个包里,打开主界面一看,5000+行代码…

无语。。。。。。。。。。。。。

只好挑重点的看,在所有类里发现一个Download类,这应该就是下载视频所用到的类,打开一看果然,把代码里的韩文翻译过来正是–视频下载吗?–确定–取消,心下一喜,顺着代码往下看,发现代码非常简单,就是去调用Java的native方法,传入要下载的开始时间和结束时间就可以了,于是开始在实验室项目里写,写完以后发现实验室的专门放所有native方法的类里并没有demo里下载视频的方法,觉得有点奇怪,这些native方法应该都是从demo里copy到实验室项目里来的,怎么会没有?想了想可能是因为之前写实验室项目的人用不到下载视频的方法,就给删除了,然后我就自己加上了下载视频和停止下载视频的方法,虽然知道希望不大,但还是尝试着运行了一下,果然,点击下载APP就崩溃了,查看logcat里的报错并没有什么有用的信息,应该是因为在真机上调试,崩溃后自动重启,新的错误将之前的覆盖了,只好转到模拟器上运行,点击下载崩溃以后,logcat提示了这个bug

java.lang.UnsatisfiedLinkError: No implementation found for......

去百度找原因,发现大家的原因全都是没有导入需要的so文件,或者导入方法不对,我把能试的方法都试过了但是并没有解决
https://blog.csdn.net/dreamme1/article/details/50351007
于是只好从底层找原因,但是native方法都是运行在linux上的,没法查看,去网上查了查native方法和so文件
so文件:https://www.jianshu.com/p/cb15ba69fa89
native:https://blog.csdn.net/dj673344908/article/details/82461418
实验室项目的so文件只有一个,但我又不知道如何打开so文件,百度后了解到,要使用linux查看so文件,刚好前几天在做操作系统实验,电脑上还有linux虚拟机,将so文件导入到linux虚拟机后
使用 nm -D ***.so查看so文件里的接口,并没有下载视频时用到的那个方法。
好吧,这下问题不怪我了,是客户给的so文件有问题,到时候只好和老师这么说,觉得这个功能可能没法实现了。但是又总是不甘心,翻来覆去的想,demo里既然有下载视频的代码,总不可能跟我遇到的情况一样,一下载就闪退,那这个demo也太不合格了,然后开始佛学起来,把所有的参数都改了一下,发现demo里居然还有bug,本来开始时间和结束时间只相差1分钟,demo里计算出来的时间差居然多了一个月,那有没有可能是因为时间太长没法下载导致闪退呢,我把demo里的bug解决后,设置成只下载一分钟长度的视频,结果还是那个bug,依旧闪退,心灰意冷,打算关电脑上床睡觉,打算关掉linux虚拟机的时候忽然想到,会不会是demo里的so文件和实验室项目的so文件不一样,我打开demo的文件夹,找到so文件,大小是1755KB,然后打开实验室项目,找到so文件,发现大小是1740KB,居然是个阉割版的!!!!!
于是赶紧将demo里的so文件导入到linux虚拟机,用命令行打开后发现了下载视频时用到的函数,激动的不能自己,然后用demo里的so文件替换掉实验室项目里的so文件,rebuild后运行,logcat里不停的打印downloading…,程序也没有闪退,没一会就提示视频已下载到本地,激动的到文件夹一看,果然已经下载下来了,开心到爆炸!!!

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

【Android】使用native开发遇到的bug---java.lang.UnsatisfiedLinkError: No implementation found for 的相关文章

随机推荐

  • [QT_046]Qt学习之网格布局器(QGridLayout)

    本文转自 Qt编程指南 作者 奇先生 Qt编程指南 Qt新手教程 Qt Programming Guide 6 3 网格布局器 本节介绍网格布局器 QGridLayout 当控件分布的行 列都比较有规律时 可以不用一行行设置布局器 而是直接
  • Linux下文件操作命令练习

    1 创建目录 home hadoop work1 home hadoop work2 mkdir home hadoop work1 mkdir home hadoop work2 2 将当前目录切换到 home hadoop work1
  • Hbuilder+PhPstudy配置PHP环境走过的坑

    由于比较喜欢用Hbuilder写前端 所以选择在这上面写PHP 在网上看到许多搭建环境的方法 最后选择了通俗易懂的PhPstudy 1 在PhPstudy官网上下载 注意 安装的路径不能出现中文和空格 这里我装在d盘 netstat ano
  • safari5.1 进程死掉的故障

    某个网页 在其他版本的safari包括safari mobile都可用 唯独升级到5 1后页面打不开了 用safari自带调试功能发现 解析css时进程死掉了 部分样式出现了 但其他样式没有出现 故障初步定在css上 一个多月过去了 后来将
  • Beyond Compare 3 许可证密钥被撤销

    最近在使用 Beyond Compare 3 时突然出现 许可证密钥被撤销 问题 现象截图以下 自己清除注册表并重新安装后还是出现相同的问题 没办法只能求助于百度 找到解决方法 删除 C Users Administrator AppDat
  • 当我问 ChatGPT 能否推荐一下好用的 API 管理工具时?

    近期围绕 ChatGPT 的话题 真的太多了 我们就知道了 ChatGPT 简单说就是搜索引擎 社交工具 这个解释最简单明了 出于好奇 我也用 ChatGPT 测试了一下 我 在中国 最好的 API 管理工具是什么 ChatGPT 我无法确
  • 剑指 Offer 09. 用两个栈实现队列

    题目链接 09 用两个栈实现队列 思路分析 用两个栈实现队列 首先把1 gt 2然后逐个弹出顶端元素 class CQueue public stack
  • 【华为OD机试真题】单向链表中间节点(寻找链表的中间结点)(C++&java&python)100%通过率 超详细代码注释 代码深度解读

    华为OD机试真题 2022 2023 真题目录 点这里 华为OD机试真题 信号发射和接收 试读 点这里 华为OD机试真题 租车骑绿道 试读 点这里 寻找链表的中间结点 知识点链表数组 时间限制 1s空间限制 256MB限定语言 不限 题目描
  • 2021美赛成绩查询证书下载

    下载证书地址为 http www comap math com mcm 2021Certs pdf 链接中的6个 替换为自己队的编号 如 http www comap math com mcm 2021Certs 123456 pdf
  • 中央循环管式蒸发器总图

    中央循环管式蒸发器属于自然循环型的蒸发器 它是工业生产中广泛使用且历史悠久的大型蒸发器 至今在化工 轻工 环保等行业中仍被广泛采用 它的加热室由管径为25mm 75mm 长度为1m 2m 长径之比约为20 40 的直立管束组成 在管束中央安
  • HCSR04超声波传感器驱动

    HC SR04是一款使用较为广泛的超声波测距模块 模块图如下 该模块具有四个引脚 分别为VCC GND TRIG ECHO 其中VCC GND为供电脚 TRIG为测距触发引脚 ECHO为测距输入引脚 该模块的驱动模式为 控制口发一个 10U
  • 【WIN】svchost与共享进程服务

    查看注册表中的系统服务文件夹 我们可以发现某些服务的ImagePath显示的是svchost exe的路径 如下图所示 svchost exe 是微软Windows操作系统中的系统文件 微软官方对它的解释是 svchost exe 是从动态
  • SpringBoot 整合 Druid+ 全局事务管理 +Mybatis-Plus+ 代码生成器

    SpringBoot 整合 Druid 全局事务管理 Mybatis Plus 代码生成器 在 springboot 开发当中 Druid 全局事务管理 代码生成器都是非常实用的 特此记录下整合的过程 整合 Druid 连接池 spring
  • js逆向技巧

    一 总结 搜索 全局搜索 代码内搜索 debug 常规debug XHR debug 行为debug 查看请求调用的堆栈 执行堆内存中的函数 修改堆栈中的参数值 写js代码 打印windows对象的值 勾子 cookie钩子 请求钩子 he
  • 存在的意义

    到目前为止出现过的所有备选答案 1 成功 成为人上人 2 好吃的 好听的 好看的 3 明白些道理 遇见有趣的事 4 像吃蛋糕和甜甜圈一样 在于吃的过程 5 纯粹为了快感而嗑药 6 为了我爱的人和爱我的人 7 为社会和他人作贡献 8 为神服务
  • FreeRTOS学习笔记—任务挂起和恢复

    文章目录 一 任务挂起和恢复API函数 1 1 vTaskSuspend 函数 1 2 vTaskResume 函数 1 3 xTaskResumeFromISR 函数 二 任务挂起和恢复 2 1 任务1挂起解挂任务2 2 2 中断中解挂任
  • 绘制ER图(数据库关系图)

    http www texample net tikz examples entity relationship diagram https www assembla com wiki show tikz er2 usepackage tik
  • Spring Boot 报错ThreadPoolTaskExecutor : Shutting down ExecutorService ‘applicationTaskExecutor‘

    问题 Spring Boot 报错ThreadPoolTaskExecutor Shutting down ExecutorService applicationTaskExecutor 原因 idea没有运行项目 运行了测试类 解决 运行
  • Angular 11常用api

    ngFor渲染每个商品 div div 属性绑定 div h3 a a h3 div 插值 div h3 a product name a h3 div
  • 【Android】使用native开发遇到的bug---java.lang.UnsatisfiedLinkError: No implementation found for

    今晚终于解决了一个困扰我三天的bug 就是这个java lang UnsatisfiedLinkError No implementation found for 感觉人生达到了巅峰 特此记录下 前几天老师给我一个项目 让我实现一个将视频下