Android NDK:dlopen失败

Android NDK:dlopen失败,android,android-ndk,Android,Android Ndk,我有一个奇怪的错误,上面写着: java.lang.UnsatisfiedLinkError: dlopen failed: cannot find "./obj/local/armeabi-v7a/libsharedlibrary.so" from verneed[1] in DT_NEEDED list for "/data/data/com.my.app/cache/libnative.so" 我试了很多,但我不明白。我希望外面的任何人都能帮助我!提前谢谢 编辑: 这不是一个复杂的问题,

我有一个奇怪的错误,上面写着:

java.lang.UnsatisfiedLinkError: dlopen failed: cannot find "./obj/local/armeabi-v7a/libsharedlibrary.so" from verneed[1] in DT_NEEDED list for "/data/data/com.my.app/cache/libnative.so"
我试了很多,但我不明白。我希望外面的任何人都能帮助我!提前谢谢

编辑:
这不是一个复杂的问题,因为它不是同样的错误。这个问题的答案对我没有帮助…

libsharedlibrary.so缺少SONAME条目。您当前可能会看到如下内容:

$ readelf -dW libnative.so | grep NEEDED | grep libsharedlibrary
 0x0000000000000001 (NEEDED)             Shared library: [./obj/local/armeabi-v7a/libsharedlibrary.so]
请注意,如果系统上没有readelf,NDK中会提供$NDK/toolchains/arm-linux-AndroidAbi-4.9/prebuild/linux-x86_64/bin/arm-linux-AndroidAbi-readelf(根据操作系统的需要调整路径)。请注意,这里的架构实际上并不重要。readelf是一个多拱工具。任何工具链的readelf都可以正常工作

如果libsharedlibrary.so是使用SONAME构建的,您应该看到:

$ readelf -dW libnative.so | grep NEEDED | grep libsharedlibrary
 0x0000000000000001 (NEEDED)             Shared library: [libsharedlibrary.so]
您应该在libsharedlibrary.so上看到以下内容:

$ readelf -dW libsharedlibrary.so | grep SONAME
 0x000000000000000e (SONAME)             Library soname: [libsharedlibrary.so]

问题是libsharedlibrary.so不是用
-Wl,-soname,libsharedlibrary.so
ldflag构建的。ndk build和CMake将为您提供此功能,但如果您使用的是独立的工具链或自定义生成系统,则需要您自己提供。

可能的重复不是重复。您好,您是如何解决此问题的?提前谢谢你是对的,但是我之前已经解决了这个问题。我忘了回答。你的回答被接受了。