android 7.0动态加载so,链接共享库libGLES_mali.so会导致dlopen失败:在Android> = 7.0中找不到库“android.hardware…@1.0.so”...

一种可能的解决方法是将库包含在apk中(参见Update your app).

您尝试链接的库可能依赖于其他非ndk库.在这种情况下,您也应该包括这些库.

就我而言,我一直在开发一个使用OpenCL的应用程序.在ARM设备上,具有正确符号的库是libGLES_mali.so.该应用程序适用于Android< 7.0但它在Android> = 7.0的设备上崩溃.我在logcat中可以读到的错误是:

java.lang.UnsatisfiedLinkError: dlopen failed: library "android.hardware.graphics.common@1.0.so" not found

使用命令

readelf -d libGLES_mali.so | grep NEEDED

我可以读取libGLES_mali.so所依赖的库的名称,并且可以预见android.hardware.graphics.common@1.0.so就是其中之一:

0x0000000000000001 (NEEDED) Shared library: [android.hardware.graphics.common@1.0.so]

0x0000000000000001 (NEEDED) Shared library: [liblog.so]

0x0000000000000001 (NEEDED) Shared library: [libnativewindow.so]

0x0000000000000001 (NEEDED) Shared library: [libz.so]

0x0000000000000001 (NEEDED) Shared library: [libc++.so]

0x0000000000000001 (NEEDED) Shared library: [libutil

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值