ndk编译 错误:dlopen failed:cannot locate symbol 一个符号 referenced by 你的库.so/.a lang.UnsatisfiedLinkErr
最近在某家公司做实习生,从事移植工作,公司要求将以前跑在linux老设备上的程序移植到android平台上。项目很大一部分是c++写的,所以需要用ndk把所有源代码编到android平台下,当然也包括所依赖的第三方库。第三方库还比较好说,因为boost,openssl,websocket这些库要么对android有很好的支持,要么有开源项目去辅助支持。所以主要工作还是编译源代码问题,代码量相当庞大。
因为在学校的时候很少做c++开发和编译工作,所以解决问题很困难,这几天就有一个很怪异的问题缠绕着我。
问题是这样的,由于保密措施,项目代码都是分离的,每个人都只有自己的一部分。所以我的同事需要用ndk编好他的代码和他依赖的第三方库,编程.a库,然后另一个同事再依赖前一个同事 的.a库和第三方库,这样一层一层..........最后我拿到这个模块的库再去编。
结果出问题了,在用jni去调这个库的时候:
cao,这是怎么回事?他说找不到这个符号,但打开.a文件,可以看到这个符号。于是就怀疑库是不是没引进来,问了下同事,同事说.a的库编译的时候其他库都会引进来。但看了看文件大小,模块的.a库只有7M,但那些第三方库却有几百M,很明显,没引进来。google了一下,是mk文件有问题。
最后一句include $(PREBUILT_STATIC_LIBRARY),预编译的模块不会出发构建过程。只是把预编译的共享库拷贝到$PROJECT/obj/local路径,静态库则是拷贝到$PROJECT/libs/并进行裁剪。
所以,如果我要编这个模块的话,要把每个同事所依赖的.a全部引进来。没错,全部。
测试通过,成功跑起。
ndk编译 错误:dlopen failed:cannot locate symbol 一个符号 referenced by 你的库.so/.a lang.UnsatisfiedLinkErr相关推荐
- 探讨NDK编译错误ld.exe: Dwarf Error: mangled line number section.
如题所示的NDK编译错误是什么原因导致的? 我的困惑 今天在把WIN32下的一个工程移植到ANDROID时遇到上述错误,感到非常困惑.错误如下: D:/ndkr8/toolchains/arm-lin ...
- NDK编译错误expected specifier-qualifier-list before...
基于cocos2d-x在win7下开发android程序,一般都会选择先在win32下调试,等最后再在eclipse环境下安装测试到真机上.期间,要使用到cocos2d-x提供的一些简化方案进行NDK ...
- android中ndk编译错误,Android NDK编译常见错误及解决方案
Android NDK编译常见错误及解决方案 Error 1:$ ndk-build/cygdrive/c/andy/abc/obj/local/armeabi-v7a/objs/abc//hello ...
- Springboot打包编译错误:Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.8.1
maven编译出错 原因:JDK版本问题 把JDK版本由1.8.0.192改为1.8.0.211,启动成功. 刚入职拉项目跑不起来,搞了整整两天才解决,更换了所有环境,最后换了JDK版本,问题解决.
- 存储过程 编译错误:PLS-00103: Encountered the symbol TABLE when expecting one of the following:
必须使用动态的语句, DDL 语句,在存储过程中, 需要改为动态语句 : execute immediate 'sql语句' ; 我的是因为执行了 truncate table t_pvbdp_co ...
- WIN7下运行hadoop程序报:Failed to locate the winutils binary in the hadoop binary path
项目中用到了Hbase,貌似用了Hadoop. 项目启动的时候,报了错,但是不影响正常使用. 但是,控制台有红色错误,看着不太爽,就想办法把这个问题解决了. 错误提示"Failed to l ...
- dlopen failed: empty/missing DT_HASH in quot;libx.soquot; (built with --hash-style=gnu?)
dlopen failed: empty/missing DT_HASH in "libx.so" (built with --hash-style=gnu?) 崩溃日志内容: j ...
- 【错误记录】NDK 动态库报错 ( dlopen failed: file offset for the library /lib/arm64/libwebp.so“ >= file size:0)
文章目录 一.报错信息 二.解决方案 一.报错信息 运行 NDK 时 , 删除了引用的动态库 , 然后 " Ctrl + Z " 恢复 , 运行就报如下错误 ; 2021-04-2 ...
- Android NDK cannot locate symbol __register_atfork的一次经典定位分析~
团队当前承接各类小程序开发项目,安卓移植项目,APP开发,JAVA web开发,有需要合作的找明哥. 最近在给一个客户处理编译问题,最终编译出来的so库,运行时候出错,出错信息如下: 网上找了下,都说 ...
最新文章
- 基于机器视觉的手机产品条码检测方案
- 调整CentOS的文字登陆界面的分辨率
- C#中关于处理两个大数相乘的问题
- 视频播放的方法Android,详解Android App中使用VideoView来实现视频播放的方法
- hbase的gui工具调研
- mysql导入数据库注释乱码_source命令 导入.sql文件时,中文乱码 或者是注释乱码...
- python opencv 实现从一个文件夹中读取图片做切割处理后放入另一个文件夹
- jQuery 1.4官方文档中文版
- bzoj1008: [HNOI2008]越狱
- 关于对象流两端的数据不一致的问题:
- Swift中Class和Struct异同
- 【洛谷P4706】取石子
- 电脑锁屏按什么键解锁_锁屏键除了锁屏还能干什么?这 6 个 App 带你玩转手机实体键...
- Machine Learning Concepts
- 【 地图系列 】 世界地图和主要国家的 JSON 文件
- goap git上的v sploreg/goap
- PCL库中I/O操作
- Docker 取代 VM !是什么让 Docker 比 VM 或裸机更安全?
- 论坛mysql cpu100_解决 MYSQL CPU 占用 100% 的经验总结
- Adobe CC 全系列官网下载地址