Android问题:java.lang.UnsatisfiedLinkError: No implementation found for异常解决方法
java.lang.UnsatisfiedLinkError: No implementation found for异常解决方法
一天内遇到两次这个错误,被折磨一整天,关键是报错的原因还不一样,网上没有找到相关的解决方案,在此记录一下,分享给遇到同样错误的同胞。
报错的原因
报这个错的原因猜测是因为没有找到so库,有时候我们再导入jar包的时候,可能还需要导入对应的so库。那么报这个错原因会有两个。
- so文件没有导入,或者位置没放对,导致jar包没有找到这个so文件,就会报错。
- so文件没有加载,这个问题很少遇见,因为在使用jar包时,jar中一般都会做初始化,但是也会遇到奇葩的情况,需要自己初始化。
1. SO库没有导入
一般jar包的位置是放置到libs下,so文件放在app\src\main\jniLibs目录下,如果没有jniLibs则自行创建。其实so文件也是可以放在libs目录下的,不过要再对应model下build.gradle中加入以下代码:
sourceSets {main {jniLibs.srcDirs = ['libs']}}
如果你是将so文件放在jniLibs目录下了,那么则必须删除以上代码,否则还是会找不到so文件。
还有一种情况,这个是最骚的,那就是你以上步骤都是对的,但是还是找不到so文件,那么恭喜你,这也许不是你的错……
都是他的错——Android Studio缓存的错,既然知道是缓存的错,那就简单了,把缓存删了就OK了
第一步:关闭AS
第二步:打开项目所在的目录将项目下的.gradle、.idea、gradle三个文件删了
第三步:将所需要的的jar包和so库都直接在文件中重新加入一遍。
第四步:启动AS,启动项目,如果出现一个弹窗提示,不要慌,这是因为把gradle给删了,提示你是否重新创建,点OK就行,别点cancle,否则后面需要你自己创建了,我就帮不到你了。
第五步:没了。
2. so文件没有加载
除了上面的一种情况外,还会出现一种情况,就是因为so库没有初始化。一些jar包只提供了对应so文件,但内部并没有初始化,需要自己初始化o((⊙﹏⊙))o。看来我还是太年轻了。那么怎么解决呢,直接上代码:
Application.class
static {// 十级警告: libname不一定是so库的名字,至于是什么,这个可能需要找给你so库的人问了。System.loadLibrary("usb1.0");System.loadLibrary("serial_icod");System.loadLibrary("image_icod");}
嗯,没了,不用担心,这次真的完结了。
以上就是我遇到的,如果没能还是没能解决你的问题,那没办法了╮(╯▽╰)╭。
新增:
还有一种可能,框架下的文件不统一,比如我的jniLibs文件下,只有一个armeabi-v7a,那么他支持在这个框架下的系统使用,如果你还用到了armeabi或arm64-v8a等多个框架,那么你最好保证所有支持的框架下的so库齐全,如果没有,则粘贴一个其他框架下的包。
Android问题:java.lang.UnsatisfiedLinkError: No implementation found for异常解决方法相关推荐
- 【我的Android进阶之旅】Android调用JNI出错 java.lang.UnsatisfiedLinkError: No implementation found for的解决方法
一.错误描述 今天使用第三方的so库时候,调用JNI方法时出现了错误.报错如下所示: 11-01 16:39:20.979 4669-4669/com.netease.xtc.cloudmusic E ...
- [ Android实战 ] java.lang.UnsatisfiedLinkError: No implementation found for xxx 问题解决
[ Android实战 ] java.lang.UnsatisfiedLinkError: No implementation found for xxx 问题解决 背景 日志分析 解决问题 总结 尊 ...
- java.lang.NoClassDefFoundError: net/sf/ezmorph/Morpher异常解决方法
最近在做web项目时用到JSONObject,Eclipse编译未报错,但执行JSONObject jsonObject = new JSONObject()时却报java.lang.NoClassD ...
- 【java.lang.OutOfMemoryError:GC overhead limit exceeded异常解决方法】
问题描述 由于同时启动了多个项目,导致电脑蓝屏重启,重启后idea启动项目,提示系统资源不足,和Information:java: java.lang.OutOfMemoryError: GC ove ...
- 【异常】java.lang.NoClassDefFoundError: net/sf/ezmorph/Morpher异常解决方法
今天在做web项目时用到JSONObject,用的是MyEclipse自动导入的struts2的lib,其中自带了json-lib-2.1-jdk15.jar. 在struts2的action中已经导 ...
- 关于java.lang.OutOfMemoryError:GC overhead limit exceeded异常解决方法
目录 引言:遇到这种问题就是栈溢出的问题,内存不够,项目太大,导致下载整个项目的依赖时间过长 一.解决办法: 1.file---->settings---->builds,Executio ...
- Android解决调用JNI报java.lang.UnsatisfiedLinkError: No implementation found for的错误
最近公司项目需求接入即时通讯功能,现在第三方的即时通讯做的比较完善,接入也很方便.最近在调试语音的时候遇到了一个.so库加载失败的问题,在网上查看都是说由于原有项目的so库和新添加的model的so库 ...
- Caused by: java.lang.UnsatisfiedLinkError: No implementation found for void com.geoway.mobile.utils
最近一个项目中依赖: compile 'com.github.barteksc:android-pdf-viewer:2.7.0-beta.1',但是由于还使用了其他的SDK,当运行的时候就出现了这个 ...
- so调用报错 java.lang.UnsatisfiedLinkError: No implementation found for ...
最近在做一个NDK的Android项目,需要将cpp代码打包生成so库. 为了方便,直接将之前的一个项目拿过来,将cpp代码拷贝进来,修改了Android.mk文件,ndk-build成功生成so库. ...
最新文章
- 2021年大数据常用语言Scala(十一):基础语法学习 方法参数
- 013PHP文件处理——filemtime filectime fileatime date_default_timezone_set touch
- java thread isalive_Java线程编程中isAlive()和join()的使用详解
- python开发实践教程_Python开发实践教程
- Dev C++安装第三方库boost
- ThinkPHP导出CSV、Excel
- pubmed 影响因子_如何在Pubmed利用影响因子筛选文献?
- I/O设备与主机的联系方式
- C语言进制转换以及原补反码位运算介绍
- 打印机出现另存为xps_win7系统打印文件时弹出另存为xps/pdf的解决方法
- AR - 增强现实技术(AR)的103个应用场景汇总
- keil优化等级影响STM32 GPIO速度变化
- Error: Couldn‘t find preset “stage-2“ relative to directory
- Flutter 上字体的另类玩法:FontFeature
- GUI自动化 - 识图定位
- 杨绛:越是难熬的时候,人越要体面
- 嘿!快跟C菌一起来看看这周都更新了些啥
- linux svn e170001,jenkins - svn: E170001报错的原因以及解决方案
- Java零基础小白的福利来了!!高淇老师带你飞~
- 班章管家正规可靠20万存定时5年合算吗?3年期比照5年期哪个好?