安卓NDK : UnsatisfiedLinkError when using OpenAL shared library

标签 android android-ndk openal

我正在尝试在 Android 中使用手动编译的 OpenAL 共享库。

include $(CLEAR_VARS)
LOCAL_MODULE:=openal
LOCAL_SRC_FILES:=../mylibs/libopenal.so
LOCAL_EXPORT_C_INCLUDES:=$(LOCAL_PATH)/include/AL
include $(PREBUILT_SHARED_LIBRARY)

在 mylibs 文件夹中我有 3 个文件:

lrwxr-xr-x  21:12 libopenal.so -> libopenal.so.1
lrwxr-xr-x  21:12 libopenal.so.1 -> libopenal.so.1.13.0
-rwxr-xr-x  22:33 libopenal.so.1.13.0

一切正常,但在运行时出现此错误:

E/AndroidRuntime(13604): Caused by: java.lang.UnsatisfiedLinkError: Cannot load library:         link_image[1848]:  1296 could not load needed library 'libopenal.so.1' for 'libopenaltest.so'     (load_library[1120]: Library 'libopenal.so.1' not found)
E/AndroidRuntime(13604):    at java.lang.Runtime.loadLibrary(Runtime.java:370)
E/AndroidRuntime(13604):    at java.lang.System.loadLibrary(System.java:535)
E/AndroidRuntime(13604):    at com.hz.openal.OpenActivity.<clinit>(OpenActivity.java:10)
E/AndroidRuntime(13604):    ... 15 more

谁能帮我解决这个问题?

最佳答案

这样试试

LOCAL_MODULE := lib3rdparty-prebuilt
LOCAL_SRC_FILES := lib3rdparty.so
include $(PREBUILT_SHARED_LIBRARY)

LOCAL_SHARED_LIBRARIES += lib3rdparty-prebuilt

我想你错过了最后一行 LOCAL_SHARED_LIBRARIES .....

而且您在加载“libopenaltest.so”库之前没有加载“libopenal.so”库。在加载依赖库之前,需要使用 System.loadLibrary() 加载所有库。

关于安卓NDK : UnsatisfiedLinkError when using OpenAL shared library,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13662586/

相关文章:

c++ - 如何用 g++ (Ubuntu) 编译 OpenAL 程序?

iphone - 无法删除 OpenAL 缓冲区

android - 在android中设置像素后图像中的边缘不平滑

android - 如何同时为android布局元素的背景使用形状和选择器?

android - 我可以在 ndk 中使用带有 libc++ 的实验性文件系统吗

c - C 中的替代 gettext 库?

c++ - 只有在充满 for 循环时才打开缓冲区播放

java - 使用 IP 的有效 Android 证书

android - Phonegap - Android - 从另一个调用/启动应用程序

android - 从 native 线程获取 Android 上的回溯?