Android 依赖三方so库报错找不到dlopen failed:xxx not found 显示磁盘路径

这篇具有很好参考价值的文章主要介绍了Android 依赖三方so库报错找不到dlopen failed:xxx not found 显示磁盘路径。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

场景:

app中有 a模块, 在a模块中通过cmake 构建 libso_a.so ,

libso_a.so 依赖编译好的三方库 libso_b.so,

编译运行后 打开即崩溃....

问题一:

so库加载失败,无法找到 且报错路径显示为磁盘路径;

.....

        java.lang.UnsatisfiedLinkError: dlopen failed: library "E:/Hx/xxxxxxxxx/arm64-v8a/libso_b.so" not found

libpenguin.so

 通过readelf查看so_a的依赖,确实为so的全路径:

libpenguin.so

cmakelists.txt中的依赖为:

...

add_library( 
    so_b 
    SHARED 
    IMPORTED
)


set_target_properties(
    so_b 
    PROPERTIES IMPORTED_LOCATION 
    ${CMAKE_CURRENT_SOURCE_DIR}/../jniLibs/${ANDROID_ABI}/libso_b.so
)


target_link_libraries(

        so_a

        so_b

        ${log-lib}
)

解决办法:

方法1、 

不使用add_library()方式依赖,

直接在target_link_libraries()中设置依赖so_b的位置;

libpenguin.so

方法2、

还是使用add_library()的方式添加依赖,

通过设置添加配置,不使用全路径链接

set_property(TARGET  so_b PROPERTY IMPORTED_NO_SONAME 1)

 

问题二:

同样报错,显示 dlopen failed xxx.so not found......但路径不是全路径了

libpenguin.so

 通过查看debug的apk 包 发现 so_b.so 未正常打入apk中,

libpenguin.so

 so库的位置在moudule中的 jinLibs/中,  解决方法就是将so库的目录添加到配置中, 

libpenguin.so

 同步后重新编译, 正常运行...文章来源地址https://www.toymoban.com/news/detail-780183.html

到了这里,关于Android 依赖三方so库报错找不到dlopen failed:xxx not found 显示磁盘路径的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Ubuntu 22报错:PAM unable to dlopen(pam_tally2.so)

    ubuntu 22安装好后,普通用户一直登录不上,查看/var/log/auth.log发现报错 查看文档发现Ubuntu 22.04系统中 pam_tally2.so 这个模块已经不再被使用,需要使用 pam_faillock.so 来代替,但是PAM文件中默认还是在使用 pam_tally2.so ,这里就需要手动修改一下 将 /etc/pam.d/sshd 中的 再重启sshd服务,

    2024年02月08日
    浏览(45)
  • idea报错找不到符号

    idea会出现找不到符号的错误,解决方法: 1)重启idea(有时候我们从一个包中复制类到另一个包中,此方法可试 2)修改编码 setting--editor---FileEncoding,将三个选项都改为utf-8  3)清理缓存并重启

    2024年02月11日
    浏览(55)
  • maven多模块----子模块相互依赖打包时报错找不到类的解决方案

    在被依赖的模块pom文件中加上如下配置: 注:如果你的配置文件就是如上配置,那么你需要在maven打包的时候,install一下,就可以依赖了

    2024年02月16日
    浏览(60)
  • 若依集成mybatisplus报错找不到xml

    引用:https://blog.csdn.net/qq_65080131/article/details/136677276 MybatisPlusAutoConfiguration 中可以知道,系统会自动配置SqlSessionFactory,,但是,当你有自定义的 SqlSessionFactory ,,就会出问题,,,, 若依中的 SqlSessionFactory 不是 MybatisSqlSessionFactory 所以需要,将SqlSessionFactory 换成, MybatisS

    2024年04月27日
    浏览(51)
  • pyinstaller打包selenium报错找不到webdriver

    遇到的情况: 使用pyinstaller -w -F打包selenium 在大部分机器上运行正常 但是少数机器上运行报错 selenium版本:3.141.0 报错内容: Message: ‘chromedriver.exe’ executable needs to be in PATH. Please see https://sites.google.com/a/chromium.org/chromedriver/home 关键代码: 在网上查了许多方法,比如将chromedriver和e

    2024年02月16日
    浏览(104)
  • python安装第三方库报错(Failed building wheel for 库名)

         在安装cartopy 和 gdal库时提示安装wheel文件错误,具体如下:        “ This error originates from a  subprocess, and is likely not a problem with pip. ERROR: Failed building wheel for cartopy Failed to build cartopy ERROR: Could not build wheels for cartopy, which is required to install pyproject.toml-based projects”     问

    2024年02月12日
    浏览(47)
  • 海康威视SADPTool报错找不到MSVCR120.dll问题

    在海康威视官方下载的设备网络搜索工具,安装后报错如下: 由于找不到MSVCR120.dll,无法继续执行代码。重新安装程序可能会解决此问题。   参考了一些帖子,说是Visual C++问题。 链接如下:运行Photoshop cc 由于找不到MSVCP120.dll,无法继续执行代码 - 知乎 然后去微软官方下载安

    2024年02月05日
    浏览(120)
  • matlab安装激活后报错找不到icuuc54.dll

    matlab激活后,有报错找不到icuuc54.dll 解决办法: 这是因为破解用的版本不一样,我下载的是matlab2016b,但是破解时,在网上下载的matlab2016a的破解包,所以我重新下载2016b的crack包后,然后再在D:ProgramFilesMATLABR2016bbinwin64activate_matlab重新加载破解包后就可以了,然后再将破解

    2024年02月15日
    浏览(103)
  • 关于python程序打包成exe之后报错找不到DLL或者找不到指定的模块问题

    问题描述:我写好了python代码在本地可以完美运行。但是当我通过pysimplegui或者pyinstaller打包成exe后报错如下: File \\\"pyprojnetwork.py\\\", line 10, in module ImportError: DLL load failed while importing _network: 找不到指定的模块。 问题溯源:我回去确认了本地导入相关的库及函数是正常的。联想到

    2024年02月13日
    浏览(77)
  • 计算机报错找不到msvcp110.dll无法继续执行代码怎么解决?

    msvcp110.dll文件丢失是一个相当常见的问题,尤其是在运行某些程序或游戏时。这个问题可能会导致程序无法正常运行,甚至可能导致系统崩溃。那么,面对这样的问题,我们应该如何来解决呢?下面,我将分享我解决问题的四个解决方法。 首先,第一种方法:利用dll修复工具

    2024年02月05日
    浏览(60)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包