2

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

誰でもこの問題を解決できますか?

4

1 に答える 1

1

このようにしてみてください

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()を使用してすべてのライブラリをロードする必要があります。

于 2012-12-03T13:28:27.753 に答える