Android如何使用so文件和Android studio中导入so
2016-12-26 21:17
656 查看
Android中使用so文件:
做一个PDF阅读的功能,找到一个开源的库,mupdf。下载的是网上编译好的so库,导入到自己项目中的时候一直报错Java.lang.UnsatisfiedLinkError: Couldn't load netplayerlibq: findLibrary returned null,找不到so文件中的方法。找了一个下午,终于知道了原因。
JNI中的方法的命名规范是
1) 前缀: Java_
2) 类的全限定名,用下划线进行分隔(_):com_lms_jni_JniTest
3) 方法名:getTestString
方法命名是与包名相关的,所以在用so库的时候,将调用其中方法的类的包名改成so文件中写的包名。这是最简单的办法。当然,最好的办法当然是找到开源项目的源码交叉编译成含有我们项目包名的so文件。
参考http://blog.csdn.NET/jiabailong/article/details/7986350
Android studio中导入so的两种方法:
1、将so文件放在libs目录下,然后在app的build.gradle中加入如下配置
整个配置文件如下:
2、将所有需要使用的.so文件压缩为.zip文件(zip中的文件目录结构为: lib/armeabi/*.so)注意,一定要是这样的路径,lib不要写成libs啊!然后将这个.zip文件重命名为armeabi.jar文件(我用的是so.jar),将该jar包添加到项目的libs文件下,然后Add isLibrary。
最后的目录结构
libs
^---|xxx.jar
^---|armeabi.jar
^---|lib
^---|armeabi
^---|xxx.so
做一个PDF阅读的功能,找到一个开源的库,mupdf。下载的是网上编译好的so库,导入到自己项目中的时候一直报错Java.lang.UnsatisfiedLinkError: Couldn't load netplayerlibq: findLibrary returned null,找不到so文件中的方法。找了一个下午,终于知道了原因。
JNI中的方法的命名规范是
1) 前缀: Java_
2) 类的全限定名,用下划线进行分隔(_):com_lms_jni_JniTest
3) 方法名:getTestString
方法命名是与包名相关的,所以在用so库的时候,将调用其中方法的类的包名改成so文件中写的包名。这是最简单的办法。当然,最好的办法当然是找到开源项目的源码交叉编译成含有我们项目包名的so文件。
参考http://blog.csdn.NET/jiabailong/article/details/7986350
Android studio中导入so的两种方法:
1、将so文件放在libs目录下,然后在app的build.gradle中加入如下配置
sourceSets { main { jniLibs.srcDirs = ['libs'] } }
整个配置文件如下:
android {
compileSdkVersion 23
buildToolsVersion '19.1.0'
defaultConfig {
applicationId "com.hehe.itlms"
minSdkVersion 15
targetSdkVersion 23
versionCode 1
versionName "1.0.0"
}
buildTypes {
release {
minifyEnabled true//是否混淆
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
sourceSets { main { jniLibs.srcDirs = ['libs'] } }
}
2、将所有需要使用的.so文件压缩为.zip文件(zip中的文件目录结构为: lib/armeabi/*.so)注意,一定要是这样的路径,lib不要写成libs啊!然后将这个.zip文件重命名为armeabi.jar文件(我用的是so.jar),将该jar包添加到项目的libs文件下,然后Add isLibrary。
最后的目录结构
libs
^---|xxx.jar
^---|armeabi.jar
^---|lib
^---|armeabi
^---|xxx.so
相关文章推荐
- Android如何使用so文件和Android studio中导入so
- 如何使用Android Studio打开一个App项目,导入Android App项目需要修改哪些配置文件?
- Android studio 使用心得(六)—android studio 如何加载.so文件
- Android 关于 如何使用外界导入的数据库文件
- Android Studio如何快速导入jar和.so文件
- Android Studio中如何导入jar和.so文件
- android如何使用so文件
- Android中JNI使用详解(3)---Android Studio中SO文件生成
- android studio 导入so文件出现的问题AND[android]复制 APK 许可证 (同一文件) 中的重复文件
- Android studio如何利用Android.mk编译生成多个so文件
- 实例详解android studio如何导入.so文件的方法
- Android Studio 如何导入.so文件/jar文件和library库
- 如何调用已有的SO文件来生成供Android使用的SO文件
- Android Studio 导入eclipse带NDK的项目,使用Android.mk文件
- 【工具使用】Android Studio如何导入Android系统源代码
- android开发步步为营之98:android studio使用技巧之一(如何清理不需要的文件)
- Android Studio 如何导入.so文件
- Android studio 使用心得(六)---android studio 如何加载.so文件
- Android 关于 如何使用外界导入的数据库文件
- 如何简单修改Android的so文件