最近在某家公司做实习生,从事移植工作,公司要求将以前跑在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相关推荐

  1. 探讨NDK编译错误ld.exe: Dwarf Error: mangled line number section.

    如题所示的NDK编译错误是什么原因导致的? 我的困惑 今天在把WIN32下的一个工程移植到ANDROID时遇到上述错误,感到非常困惑.错误如下: D:/ndkr8/toolchains/arm-lin ...

  2. NDK编译错误expected specifier-qualifier-list before...

    基于cocos2d-x在win7下开发android程序,一般都会选择先在win32下调试,等最后再在eclipse环境下安装测试到真机上.期间,要使用到cocos2d-x提供的一些简化方案进行NDK ...

  3. android中ndk编译错误,Android NDK编译常见错误及解决方案

    Android NDK编译常见错误及解决方案 Error 1:$ ndk-build/cygdrive/c/andy/abc/obj/local/armeabi-v7a/objs/abc//hello ...

  4. 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版本,问题解决.

  5. 存储过程 编译错误:PLS-00103: Encountered the symbol TABLE when expecting one of the following:

    必须使用动态的语句, DDL 语句,在存储过程中, 需要改为动态语句  : execute immediate 'sql语句' ; 我的是因为执行了 truncate table t_pvbdp_co ...

  6. WIN7下运行hadoop程序报:Failed to locate the winutils binary in the hadoop binary path

    项目中用到了Hbase,貌似用了Hadoop. 项目启动的时候,报了错,但是不影响正常使用. 但是,控制台有红色错误,看着不太爽,就想办法把这个问题解决了. 错误提示"Failed to l ...

  7. 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 ...

  8. 【错误记录】NDK 动态库报错 ( dlopen failed: file offset for the library /lib/arm64/libwebp.so“ >= file size:0)

    文章目录 一.报错信息 二.解决方案 一.报错信息 运行 NDK 时 , 删除了引用的动态库 , 然后 " Ctrl + Z " 恢复 , 运行就报如下错误 ; 2021-04-2 ...

  9. Android NDK cannot locate symbol __register_atfork的一次经典定位分析~

    团队当前承接各类小程序开发项目,安卓移植项目,APP开发,JAVA web开发,有需要合作的找明哥. 最近在给一个客户处理编译问题,最终编译出来的so库,运行时候出错,出错信息如下: 网上找了下,都说 ...

最新文章

  1. 基于机器视觉的手机产品条码检测方案
  2. 调整CentOS的文字登陆界面的分辨率
  3. C#中关于处理两个大数相乘的问题
  4. 视频播放的方法Android,详解Android App中使用VideoView来实现视频播放的方法
  5. hbase的gui工具调研
  6. mysql导入数据库注释乱码_source命令 导入.sql文件时,中文乱码 或者是注释乱码...
  7. python opencv 实现从一个文件夹中读取图片做切割处理后放入另一个文件夹
  8. jQuery 1.4官方文档中文版
  9. bzoj1008: [HNOI2008]越狱
  10. 关于对象流两端的数据不一致的问题:
  11. Swift中Class和Struct异同
  12. 【洛谷P4706】取石子
  13. 电脑锁屏按什么键解锁_锁屏键除了锁屏还能干什么?这 6 个 App 带你玩转手机实体键...
  14. Machine Learning Concepts
  15. 【 地图系列 】 世界地图和主要国家的 JSON 文件
  16. goap git上的v sploreg/goap
  17. PCL库中I/O操作
  18. Docker 取代 VM !是什么让 Docker 比 VM 或裸机更安全?
  19. 论坛mysql cpu100_解决 MYSQL CPU 占用 100% 的经验总结
  20. Adobe CC 全系列官网下载地址

热门文章

  1. vue配合element 实现在线预览pdf文档
  2. 得之坦然,失之淡然顺其自然,争其必然,真是太经典
  3. 【微信小程序——云音乐播放器】
  4. win7下设置 WiFi AP
  5. 详解数据分析中的行为分析
  6. 【XML】dom4j解析
  7. 稀疏表征:稀疏字典构建
  8. 你用过的论文写作神工具有哪些?
  9. 企业管理软件如何选型?看完后恍然大悟
  10. [小程序]两数比较(5种写法)