UnsatisfiedLinkError: No implementation found for , AndroidStudio使用*.so
来源:互联网 发布:网盘搬家软件 编辑:程序博客网 时间:2024/04/30 18:56
今天工作的时候,发现了一个jni的问题,java.lang.UnsatisfiedLinkError: No implementation found for......
问题1:后来查了资料后发现,是由于我在java中定义了native方法,但是在jni中没有对应的方法,这样的话java就无法链接到本地方法。
原因:
造成这种Error的有两种情况:(1) 没有在本地方法中的头文件中定义方法;
(2) 缺少so文件。
解决方案:
(1)在.h文件中第一方法,并在.c中实现方法;
(2)引入so文件;
方案实行分析:
方案1:这个不用多说,定义方法,自己根据自己的需求去实现;
步骤(这里只讲解在Android Studio下的解决方案):
(1)在 项目名\app\src\main下新建jniLibs文件夹,并将对应的.so文件放进去{文件夹结构为:处理器版本/***.so(如:armeabi/***.so)},
这样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文件你所需要知道的
1 0
- UnsatisfiedLinkError: No implementation found for , AndroidStudio使用*.so
- UnsatisfiedLinkError: No implementation found
- NDK .so Android调用JNI出错 java.lang.UnsatisfiedLinkError: No implementation found for的解决方案
- 调用JNI出错 java.lang.UnsatisfiedLinkError: No implementation found for
- 百度地图java.lang.UnsatisfiedLinkError: No implementation found for int
- java.lang.UnsatisfiedLinkError: No implementation found for java.lang.String.....
- Android 调用.so包时报错:No implementation found for native Lxxx, java.lang.UnsatisfiedLinkError: XXX时的解决办法
- java.lang.UnsatisfiedLinkError: No implementation found
- 解决:java.lang.UnsatisfiedLinkError: No implementation found
- [JNI] java.lang.UnsatisfiedLinkError:Native method not found && no implementation found for native ~
- No implementation found for native 以及 java.lang.UnsatisfiedLinkError问题解决一例
- 调用百度地图 5.0手机报错java.lang.UnsatisfiedLinkError: No implementation found for int
- 百度地图 java.lang.UnsatisfiedLinkError: No implementation found for java.lang.String
- 一不小心就报了 java.lang.UnsatisfiedLinkError: No implementation found for long 怎么解决
- Android studio 高德sdkjava.lang.UnsatisfiedLinkError: No implementation found for long...错误的记录
- java.lang.UnsatisfiedLinkError: No implementation found for long com.autonavi.amap.mapcore.MapCore.n
- 百度地图 5.0手机报错java.lang.UnsatisfiedLinkError: No implementation found for int
- java.lang.UnsatisfiedLinkError: No implementation found for long com.baidu.platform.comjni.map.commo
- HDOJ 1016 Prime Ring Problem (DFS)
- hdu 3591 多重背包+完全背包练习题
- arm交叉编译器gnueabi、none-eabi、arm-eabi、gnueabihf、gnueabi区别
- HDOJ 1010 Tempter of the Bone (DFS)
- 常用正则表达式
- UnsatisfiedLinkError: No implementation found for , AndroidStudio使用*.so
- sqlite变更字段类型
- 最小二乘法求解的两种表示方法
- 图像处理、分析、识别、应用的课程笔记,PPT/PDF课件,计算机视觉中的机器学习、目标识别、分割、文本识别、fMRI 分析、运动和追踪等在线视频教程
- OCR应用:OCR识图取字
- Android UI布局优化之ViewStub
- Objective-C中的单例模式
- myEclipse项目转成Eclipse开发
- 暗时间