Android jni 找不到第三方库
来源:互联网 发布:关于网络的短句 编辑:程序博客网 时间:2024/06/05 17:41
最近做一个jni项目,拿到的so库需要用jni封装一层,等于是在jni的C++代码里调用第三方库的方法,然后整个项目在Android上运行出结果。
自己用jni生成的so是libaa.so 使用的第三方库是libbb.so。
到目前为止,遇到的问题是libbb各种找不到。libbb库去哪儿了?
E/AndroidRuntime(11626): Caused by: Java.lang.UnsatisfiedLinkError:
Cannot load library: soinfo_link_image(linker.cpp:1640):could not load library libbb.so needed by libaa.so;
caused by load_library(linker.cpp:750): library libbb.so not found
以上错误是在运行阶段发生的,事实上编译阶段也发生过找不到第三方的问题,表现就是库里实现的方法undefined。
分两方面解决
1,编译阶段找不到库,需要修改MK文件。
1.libbb.so放在jni/prebuilt文件夹(自己新建),同时把Android.mk复制一份到prebuilt下。
2.libbb.so的Android.mk如下:
3.libaa.so的android.mk文件需要引入上面的android.mk。
这样在编译阶段就可以连接到第三方库咯。
注意:prebuilt目录得放在libaaa/jni/下,即libaaa/jni/prebuilt
2.APK 运行阶段找不到库
在运行阶段找不到库就是Android的事情了。后来发现是load库的顺序(默哀一个,破顺序。。)。
先load第三方库,再load自己的库,因为aa库要用bb库里的方法,是依赖于bb库的,所以要先load。。
这样在运行阶段也可以找到库咯。
3.elf文件运行阶段找不到库
现象
root@generic:/data/local/tmp # ./testload
./testload
CANNOT LINK EXECUTABLE: could not load library "libktest.so" needed by "./testlo
ad"; caused by library "libktest.so" not found
处理方式
1|root@generic:/data/local/tmp # LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/data/local/tmp
RARY_PATH:/data/local/tmp <
root@generic:/data/local/tmp # ./testload
./testload
- Android jni 找不到第三方库
- Android JNI找不到第三方库的解决方案 cannot load library
- Android JNI找不到第三方库的解决方案 cannot load library
- android JNI 调用第三方动态库
- Android-jni 调用第三方动态库
- Android.mk JNI 调用第三方库
- Jni 编译第三方库
- android添加第三方库以及JNI接口封装
- android中应用第三方库及JNI
- Android JNI层加入第三方.SO库
- android中JNI利用第三方的so库
- android JNI学习之二 调用第三方动态库
- android jni开发 调用 第三方 动态链接库
- Android平台下JNI调用第三方so库
- Android平台下JNI调用第三方so库
- Android平台下JNI调用第三方so库
- Android Studio中使用JNI和第三方.so库
- Android平台下JNI调用第三方so库
- input 标签如何multiple 上传多张图片 实时在页面显示图片
- Gym Class(优先队列+拓扑排序)
- POJ 2349 Arctic Network 最小生成树 Prim
- poll&&epoll实现分析(二)——epoll实现
- Android EditText总结
- Android jni 找不到第三方库
- 匿名函数执行环境具有全局性
- C#整数三种强制类型转换int、Convert.ToInt32()、int.Parse()的区别
- 单元测试
- 线段树
- CodeForces 115A Party 求树的高度
- padding-left与text-align: center在有定位的组件中如何区分应用
- USACO1.3 修理牛棚 Barn Repair
- 正则表达式符号含义