Android (二维码)关于java.lang.UnsatisfiedLinkError的小案例
在许多项目中我们都会用到第三方动态库.so文件,但是往往会引来很多烦恼,比如:Java.lang.UnsatisfiedLinkError
- ::08.097 -/com.ishow.scan E/AndroidRuntime﹕ FATAL EXCEPTION: Thread-
java.lang.UnsatisfiedLinkError: Native method not found: com.ishow.scan.zbar.ZbarManager.decode:([BIIZIIII)Ljava/lang/String;
at com.ishow.scan.zbar.ZbarManager.decode(Native Method)
at com.ishow.scan.decode.DecodeHandler.decode(DecodeHandler.java:)
at com.ishow.scan.decode.DecodeHandler.handleMessage(DecodeHandler.java:)
at android.os.Handler.dispatchMessage(Handler.java:)
at android.os.Looper.loop(Looper.java:)
at com.ishow.scan.decode.DecodeThread.run(DecodeThread.java:)
无论你怎么搞,它就是报这个错误,让人很烦恼,本人开始使用Android studio,开始不懂如何导入动态库文件,毕竟Android studio不同于eclipse,在libs目录下放.so文件是没有用的,于是在Q群那里求救,终于有所收获,整理了一下,顺便在这里跟读者分享。
第一种方法:(最简单的方法)
在main目录下创建一个文件夹,文件夹名称:jniLibs,然后把我们的动态库文件导入到该文件夹下面,如图:
这样就可以把.so动态库文件导入到了Android studio。可是不管我怎么运行,就是报上面的java.lang.UnsatisfiedLinkError异常,我开始怀疑我导入的动态库文件,Android studio是不是无法找到,但按理说如果我的推断错误的话,应该不是报这个错误。于是我继续查找导入动态库文件到Android studio的方法,黄天不负有心人,我又学到了一种方法,
该方法主要有以下几个步骤:
1.在Windows下创建一个文件夹,文件夹名称lib
2.将动态库文件拷贝到lib目录下,如图,armeabi目录下存放.so文件
3.使用zip打包lib文件夹,然后重命名:armeabi.jar
4.把armeabi.jar拷贝到Android studio项目的libs目录下,即可
通过了第二种方法完成了导入动态库文件到Android studio了,可是运行时还是出现了java.lang.UnsatisfiedLinkError异常,无奈之下,我以为是Android studio搞的鬼,可能我不熟悉Android studio。可是当我切换到eclipse,新建一个项目,继续完成我的工作(扫描二维码的项目),一切工作准备好后,运行项目,还是出现java.lang.UnsatisfiedLinkError异常,我快要疯了。于是我静下来思考:不可能eclipse和Android studio都会出现java.lang.UnsatisfiedLinkError,除非一开始我就一直走进一个错误的“圈套”。不错,问题终于搞清楚了,问题一定是加载库文件的那个类。于是经过进一步探索,运来是存放库文件的包名我写错了,这个包名不能随便命名,必须严格按照库文件里面的Android.mk指定的包名。于是我把包名该为:com.zbar.lib(原先com.ishow.org.zbar时一直报错),把包名改回来后,运行,哈哈,问题终于解决了!
要解决关于jni的问题非常的苦恼,所以大家要注意了,要引用动态库文件,加载动态库文件的类对应的包名,必须与Android.mk里面定义的包名一致,否则将会出现java.lang.UnsatisfiedLinkError,如果这篇文章对你有帮助,希望留下个脚印,谢谢
Android (二维码)关于java.lang.UnsatisfiedLinkError的小案例的更多相关文章
- Android二维码识别 开源项目ZXing的编译
Android二维码识别 开源项目ZXing的编译 Android端的条形码/二维码识别功能 因为手机端的输入不是很方便,所以条形码/二维码的扫描是一种很有效的解决手段. 比较流行的手机应用中,常用的 ...
- android 二维码生成+扫描
android 二维码生成+扫描 1.在Android应用当中,很多时候都要用到二维码扫描,来避免让用户手动输入的麻烦. Google官方自己推出了一个二维码开源项目:ZXing库. 2.这里简单介绍 ...
- Android二维码开源项目zxing用例简化和生成二维码、条形码
上一篇讲到:Android二维码开源项目zxing编译,编译出来后有一个自带的測试程序:CaptureActivity比較复杂,我仅仅要是把一些不用的东西去掉,用看起来更方便,二维码和条形码的流行性自 ...
- 二维码相关---java生成二维码名片,而且自己主动保存到手机通讯录中...
版权声明:本文为博主原创文章,未经博主credreamer 同意不得转载 违者追究法律责任. https://blog.csdn.net/lidew521/article/details/244418 ...
- Android二维码扫描、生成
Android二维码扫描.生成 现在使用二维码作为信息的载体已经越来越普及,那么二维码的生成以及扫描是如何实现的呢 google为我们提供了zxing开源库供我们使用 zxing GitHub源码地址 ...
- Android二维码的生成,解析以及扫描功能
<1> 布局只有2个按钮,实现生成二维码和解析二维码 <Button android:layout_width="wrap_content" android:la ...
- android二维码生成
前生: 一维码:条形码 数字 缺点:不好看,占面积, 好了,请看效果图: 在准备之前我们要导一个包:core-3.2.1.jar 下载请访问: http://download.csdn.net/do ...
- Android 二维码 生成和识别(附Demo源码)
今天讲一下目前移动领域很常用的技术——二维码.现在大街小巷.各大网站都有二维码的踪迹,不管是IOS. Android.WP都有相关支持的软件.之前我就想了解二维码是如何工作,最近因为工作需要使用相关技 ...
- Android 二维码 生成和识别(转)
原博客地址 :http://www.cnblogs.com/weixing/archive/2013/08/28/3287120.html 还有几个写的也可以参考一下:http://www.itnos ...
随机推荐
- BZOJ4383 : [POI2015]Pustynia
设$a$到$b$的边权为$c$的有向边的含义为$b\geq a+c$,则可以根据题意构造出一张有向图. 设$f[x]$为$x$点可行的最小值,$a[x]$为$x$位置已知的值,则$f[x]=\max( ...
- Mongoose学习参考文档——基础篇
Mongoose学习参考文档 前言:本学习参考文档仅供参考,如有问题,师请雅正 一.快速通道 1.1 名词解释 Schema : 一种以文件形式存储的数据库模型骨架,不具备数据库的操作能力 Model ...
- 添加 Android Framework 到 Adt
Android Framework jar 包: class4.0.3 1.项目属性中的-Java Build Path,选择 Libraries,点击 “Add Library...”,添加 2.选 ...
- ACM 交换输出
交换输出 时间限制:3000 ms | 内存限制:65535 KB 难度:1 描述 输入n(n<100)个数,找出其中最小的数,将它与最前面的数交换后输出这些数.(如果这个第一个数就是最 ...
- BZOJ 1083 题解
1083: [SCOI2005]繁忙的都市 Time Limit: 10 Sec Memory Limit: 162 MBSubmit: 2431 Solved: 1596[Submit][Sta ...
- 【POJ】3207 Ikki's Story IV - Panda's Trick
http://poj.org/problem?id=3207 题意:一个圆上顺时针依次排列着标号为1-n的点,这些点之间共有m条边相连,每两个点只能在圆内或者圆外连边.问是否存在这些边不相交的方案.( ...
- 【JavaService】部署Java jar为Windows后台服务
将Java jar文件部署为Windows后台服务有多种方法:Service Installer.Java service Wrapper.JavaService.exe等等.这里介绍下使用JavaS ...
- 转MongoDB 使用Skip和limit分页
关于MongoDB 数据分页和排序 limit,skip用户的一些基础语句,介绍MongoDB 数据分页和排序实例方法. 使用Skip和limit可以如下做数据分页: Code: page1 = db ...
- PHP 操作MySQL———来自copy
学习要点:1.PHP 连接到MySQL2.增删改查3.其他常用函数 如果你已经具有了使用PHP.SQL 和MySQL 的丰富经验,现在就可以把所有这些技术组合在一起.PHP 与MySQL 之间稳固的集 ...
- 【androidstudio】将eclipse的项目导入android studio
一.概述 最近正在实习公司迭代一个app,项目工程比较大,依赖的第三方服务.第三方库较多,比较复杂.因为公司项目一直是在ec上写的,没有android studio的版本.而大家都知道ec写代码远没有 ...