编译错误 cannot locate symbol 查找原因

2020-09-08  本文已影响0人  爱玩保龄球
   java.lang.UnsatisfiedLinkError: dlopen failed: cannot locate symbol "post_onEvent" referenced by "/data/app/com.sina.weibo.medialive.landscape-R7fxpZBAyXPFfAnEbJXPRw==/lib/arm64/liblivepublisher.so"...
       at java.lang.Runtime.loadLibrary0(Runtime.java:1071)
       at java.lang.Runtime.loadLibrary0(Runtime.java:1007)
       at java.lang.System.loadLibrary(System.java:1667)
       at com.sina.weibo.medialive.landscape.LivePublisher.<clinit>(LivePublisher.java:72)
       at com.sina.weibo.medialive.landscape.MainActivity.<init>(MainActivity.java:49)
android-ndk-r14b/toolchains/aarch64-linux-android-4.9/prebuilt/darwin-x86_64/bin
# 工具使用命令
./aarch64-linux-android-readelf -s xxx/src/main/jniLibs/arm64-v8a/liblivepublisher.so | grep "post_onEvent"
   191: 000000000000e684   680 FUNC    GLOBAL DEFAULT   10 _Z12post_onEventiPc
   418: 0000000000000000     0 NOTYPE  GLOBAL DEFAULT  UND post_onEvent
#ifdef __cplusplus
extern "C" {
#include "common/define.h"  // 这个文件是c++ 声明函数用的,我放到了extern c 里面,这样导致编译链接按照c的方式处理了

#endif

#ifdef __cplusplus
}
#endif
上一篇 下一篇

猜你喜欢

热点阅读