Android   发布时间:2022-04-28  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了Android NDK UnsatisfiedLinkError:“dlopen失败:空/丢失DT_HASH”大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

我正在使用崩溃报告服务跟踪我们的Android应用程序(使用NDK加载C库)的崩溃.少数@L_673_1@遇到以下崩溃:

java.lang.UnsatisfiedLinkError: dlopen Failed: empty/missing DT_HASH in "cpplibrary.so" (built with --hash-style=gnu?)
   at java.lang.Runtime.loadLibrary(Runtime.java:365)
   at java.lang.System.loadLibrary(System.java:526)

我可以在互联网上找到的这个错误提及(例如这个Google Groups post)讨论了构建lib的问题,这会导致每次运行应用程序时都会出现错误.几乎没有关于为什么偶尔会发生这种情况的信息. This post是我能找到的最接近的.

根据崩溃痕迹,看起来任何特定的@L_673_1@都会经历这种不断的延伸;我不确定这些@L_673_1@是否能够正确加载lib.有没有人对有时可能导致这种情况发生的想法有所了解?我可以以不同的方式进行NDK构建以试图阻止它吗?

谢谢!

编辑:This post提到了有条件地获得此类错误的两种方法;我会照顾他们.

Edit2:构建文件
Android.mk(摘录):

include $(CLEAR_VARS)
LOCAL_EXPORT_C_INCLUDES := $(LOCAL_PATH)
LOCAL_C_INCLUDES := 

Application.mk:

APP_STL := stlport_static
APP_CFLAGS += -std=c++11
@H_607_35@
最佳答案@H_607_35@
如果您是第三方构建.so库供其他人使用,设置-Wl,– hash-style =两者似乎都是最好的主意.这样可以加快Gnu样式哈希的加载速度和SysV哈希的向后兼容性.@H_607_35@ @H_197_40@

大佬总结

以上是大佬教程为你收集整理的Android NDK UnsatisfiedLinkError:“dlopen失败:空/丢失DT_HASH”全部内容,希望文章能够帮你解决Android NDK UnsatisfiedLinkError:“dlopen失败:空/丢失DT_HASH”所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。