赞
踩
今天工作的时候,发现了一个jni的问题,java.lang.UnsatisfiedLinkError: No implementation found for......
原因:
造成这种Error的有两种情况:方案1:这个不用多说,定义方法,自己根据自己的需求去实现;
(1)在 项目名\app\src\main下新建jniLibs文件夹,并将对应的.so文件放进去{文件夹结构为:处理器版本/***.so(如:armeabi/***.so)},
这样Android Studio就可以在编译的时候加载对用的so文件了;
那么智能的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文件你所需要知道的
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。