마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

soundpool을 PDK로 수정해서 사용할 때 unsatisfiedlinkerror

0 추천

안녕하세요.

제가 soundpool라이브러리를 좀 수정해서 사용하려고 하는데요.

pdk를 이용해서 soundpool관련 c파일들을 새로 컴파일한 뒤 libsoundpool2.so라는 shared library를 만들어서

사용하는데 자꾸 unsatisfiedlinkerror가 나네요.

https://code.google.com/p/android-source-browsing/source/browse/media/jni/soundpool/?repo=platform--frameworks--base&name=android-4.0.1_r1

위 주소에서 soundpool 관련 jni 파일들을 구했고

http://gitorious.org/android-eeepc/base/blobs/b1520e9333efdcc6ce3605be7c02bd0f0c9a0139/media/java/android/media/SoundPool.java

여기서 soundpool.java를 구하고 조금 변경해서 쓰고 있습니다.

libsoundpool2.so 연결과 jni함수 연결은 잘 되는거 같은데 실행하면

08-19 13:12:10.922: E/AndroidRuntime(8129): Caused by: java.lang.UnsatisfiedLinkError: Cannot load library: reloc_library[1307]:   106 cannot locate '_ZN7android11MediaPlayer6decodeEPKcPjPiS4_'...
 
이렇게 찍힙니다.
SounPool.cpp 의 DoLoad() 함수에
if (mUrl) {

        p = MediaPlayer::decode(mUrl, &sampleRate, &numChannels, &format);
    } else {
        p = MediaPlayer::decode(mFd, mOffset, mLength, &sampleRate, &numChannels, &format);
        LOGV("close(%d)", mFd);
        ::close(mFd);

        mFd = -1;
    }

 

이렇게 Mediaplayer를 사용하는 부분이 나오는데 여기서 라이브러리를 찾지못하고 에러를 내는거 같습니다.

Android.mk에 아래와 같이 관련 shared library를 다 넣어줘서 컴파일도 제대로 된 상태고요.

LOCAL_PATH := $(call my-dir)

include $(CLEAR_VARS)

LOCAL_MODULE_TAGS := eng
LOCAL_MODULE    := libsoundpool2
LOCAL_SRC_FILES := com_scpark_sound_SoundPool.cpp \
						SoundPool.cpp \
						SoundPoolThread.cpp

LOCAL_SHARED_LIBRARIES := \
       libcutils \
       libutils \
       libbinder \
       libandroid_runtime \
       libnativehelper \
       libmedia \
       libmediaplayerservice \
       libaudioflinger
     
LOCAL_C_INCLUDES += \
	frameworks/base/include/media \
	frameworks/base/media/libmedia \
	frameworks/base/media/libmediaplayerservice \
	frameworks/base/services/audioflinger \
	$(JNI_H_INCLUDE) 

LOCAL_PRELINK_MODULE := false

include $(BUILD_SHARED_LIBRARY)

runtime시에 읽어들이지 못하고 있는거 같은데 어떻게 해줘야할까요? 소중한 답변 기다리겠습니다.^^

흣튼혜음 (140 포인트) 님이 2013년 8월 19일 질문
흣튼혜음님이 2013년 8월 19일 수정

답변 달기

· 글에 소스 코드 보기 좋게 넣는 법
· 질문에 대해 추가적인 질문이나 의견이 있으면 답변이 아니라 댓글로 달아주시기 바랍니다.
표시할 이름 (옵션):
개인정보: 당신의 이메일은 이 알림을 보내는데만 사용됩니다.
스팸 차단 검사:
스팸 검사를 다시 받지 않으려면 로그인하거나 혹은 가입 하세요.
...