UnsatisfiedLinkError: No implementation found for , AndroidStudio使用*.so
今天工作的时候。发现了一个jni的问题,java.lang.UnsatisfiedLinkError: No implementation found for......
问题1:后来查了资料后发现。是因为我在java中定义了native方法。可是在jni中没有相应的方法,这种话java就无法链接到本地方法。
原因:
造成这样的Error的有两种情况:
(1) 没有在本地方法中的头文件里定义方法;
(2) 缺少so文件。
解决方式:
(1)在.h文件里第一方法,并在.c中实现方法。
(2)引入so文件;
方案实行分析:
方案1:这个不用多说,定义方法,自己依据自己的需求去实现;
方案2:
步骤(这里仅仅解说在Android Studio下的解决方式):
(1)在 项目名\app\src\main下新建jniLibs目录,并将相应的.so文件放进去{目录结构为:处理器版本号/***.so(如:armeabi/***.so)},
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">
这样Android Studio就能够在编译的时候载入对用的so文件了;
(2)注意:重点来了,
在Android Studio下假设你仅仅有部分平台下的.so文件,并且你不在gradle中做不论什么配置的话,
那么智能的Android Studio就会在编译的时候编译出其它平台下的.so文件(我在Eclipse中測试的时候没有发现这个问题)
看好了,我如今仅仅在jniLibs中放入了armeabi版本号的*.so文件,可是在apk中却出现了'x86_64','x86','mips64'等多个版本号的*.so文件。
这样就会造成程序无法执行【如图】
解决方式:
在.gradle指定相应平台的(代码例如以下),这样就能够在编译的时候让studio仅仅生成相应平台的*.so文件【如图】
splits {
abi {
enable true
reset()
include 'x86', 'x86_64', 'armeabi-v7a', 'arm64-v8a' //select ABIs to build APKs for
universalApk true //generate an additional APK that contains all the ABIs
}
}
Android的.so文件教程參考地址:关于Android的.so文件你所须要知道的
UnsatisfiedLinkError: No implementation found for , AndroidStudio使用*.so的更多相关文章
- java.lang.UnsatisfiedLinkError: No implementation found for long org.opencv.core.Mat.n_Mat()
Android调试openCV4Android的时候出现以下错误 java.lang.UnsatisfiedLinkError: No implementation found for long or ...
- java.lang.UnsatisfiedLinkError: No implementation found for int com.baidu.platform.comjni.map.commonmemcache.JNICommonMemCache.Create()
完整异常: Process: com.example.ai.tabhostdemo, PID: 1287 java.lang.UnsatisfiedLinkError: No implementati ...
- java.lang.UnsatisfiedLinkError: No implementation found for int com.xxx.xx中的couldn’t find “XX.so”或loadLibrary("xxx")失败
我觉得这是个神坑,虽然早几年网上就很多po出来的解决方式,但是同样的问题,我的bug却稳如泰山,一点用都没有,好气 下面总结一下 这里前面先是有个系统打印信息 I/System.out: loadLi ...
- 【我的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/a ...
- Android学习笔记----天地图API开发之UnsatisfiedLinkError
由于在jniLibs目录下移除了x86的相关so文件,后来又因为需要在PC模拟器上调试,将该文件夹恢复后,增加了天地图的sdk,却忘记将libMapEngine.so文件同时拷贝至x86目录下,导致如 ...
- android 百度地图 No implementation found for int
java.lang.UnsatisfiedLinkError: No implementation found for int com.baidu.platform.comjni.map.common ...
- No implementation found for long com.baidu.platform.comjni.map.commonmemcache.JNICommonMemCache.Create()
3-21 10:14:20.833 2892-2892/? E/art: No implementation found for long com.baidu.platform.comjni.map. ...
- No implementation found for void `org.webrtc.PeerConnectionFactory.initializeAndroidGlobals(android.content.Context, boolean)
背景介绍 最近在使用 AndroidRTC 利用WebRtc屏幕共享时使用PeerConnectionFactory.initializeAndroidGlobals(context, true, t ...
- 拥抱 C/C++ : Android JNI 的使用
编译工具 CMake 以及 Android 上 JNI 的使用介绍. 编译工具 CMake 在Android Studio 2.2 之后,工具中增加了 CMake 的支持,于是我们有两种选择来编译 c ...
随机推荐
- CodeBlocks "no such file or directory
1但编译时还是会报错:no such file or directory;这是为什么呢? :在项目/构建选项/搜索路径 选项下,点击添加按钮,添加自己的头文件的存放文件夹,搞定... 2.code ...
- 【C#】堆、栈和堆栈的区别
导读:今天看视频,就看到了堆.栈这一块了.记得当年初相见(VB视频),劈头盖脸一阵蒙,什么都不知道,那时候师傅叫我挂起来,说我随着学习的进度,慢慢的就会懂了.现在,学到了这里,想着自己对自己从前的问题 ...
- 【loj6191】「美团 CodeM 复赛」配对游戏
题目 显然期望dp. 简单想法: f[i][j]表示前i个人中向右看并且没有被消除的人数的概率 如果第i+1个人是向右,$f[i+1][j+1]=f[i][j]/2$ 如果第i+1个人是向左,$f[i ...
- Java面试题集(三)
Jdk与jre的区别? Java运行是环境(jre)是将要执行java程序的java虚拟机. Java开发工具包(jdk)是完整的java软件开发包,包含jre,编译器和其他工具如javaDoc,ja ...
- hdu 5040 Instrusive【BFS+优先队列】
11733274 2014-09-26 12:42:31 Accepted 5040 62MS 1592K 4848 B G++ czy 先转一个优先队列的用法: http://www.cppblog ...
- ZOJ 3306 状压dp
转自:http://blog.csdn.net/a497406594/article/details/38442893 Kill the Monsters Time Limit: 7 Seconds ...
- Django实现的博客系统中使用富文本编辑器ckeditor
操作系统为OS X 10.9.2,Django为1.6.5. 1.下载和安装 1.1 安装 ckeditor 下载地址 https://github.com/shaunsephton/django-c ...
- 2017-10-28-afternoon-清北模拟赛
T1 水题(water) Time Limit:1000ms Memory Limit:128MB 题目描述 LYK出了道水题. 这个水题是这样的:有两副牌,每副牌都有n张. 对于第一副牌的每张牌 ...
- 分布式架构和微服务CI/CD的范本技术解读
随笔分类 - 分布式架构--http://www.cnblogs.com/hujihon/category/858846.html (ZooKeeper.activemq.redis.kafka)的分 ...
- CodeWar---将字符串转换为驼峰命名
Convert string to camel case 将字符串转换为驼峰命名 自己的解法 将不是字母和数字的字符用.取代,再根据点划分数组.将下标不为0的数组首字符大写,剩下全部小写 static ...