제가 현재

java에서 jni(libAA.so파일)을 호출하면 jni(libAA.so파일)에서

다른.so(libBB.so)파일의 함수를 호출해서 사용하려고 합니다.


- 에뮬레이터에서 실행 결과 /data/data/프로젝트명/lib/밑에 빌드된 라이브러리(.so)파일은 확인해습니다.

- apk 파일내부 확인 결과 apk파일명/lib/armeabi/밑에도 빌드된 라이브러리(.so)파일이 있습니다.(파일사이즈는 다르더군요)



질문 1. 안드로이드에서 위와 같이 jni(libAA.so파일)을 통해서 다른.so(libBB.so)파일의 함수 호출이 안되는 건가요?

질문 2. 된다면, 어떻게 해야 하나요(호출방법이나 라이브러리 링크방법)?

질문 3. 에뮬레이터 내부에 들어가 있는 라이브러리(.so) 파일중 어떤경로의 파일이 쓰이게 되나요?

질문 4. 라이브러리의 파일경로는 어떻게 인식되는지 알고 싶습니다.

            (예 : fopen("/파일경로/libBB.so", "a+B"); )



라이브러리 빌드는 제대로 된것 같은데 아래와 같은 에러가 발생합니다.

=========================================

02-28 09:17:25.711: E/AndroidRuntime(284): Caused by: java.lang.UnsatisfiedLinkError: Library AA not found
02-28 09:17:25.711: E/AndroidRuntime(284):     at java.lang.Runtime.loadLibrary(Runtime.java:461)
02-28 09:17:25.711: E/AndroidRuntime(284):     at java.lang.System.loadLibrary(System.java:557)
02-28 09:17:25.711: E/AndroidRuntime(284):     at com.rop.m.crypto.FCOK.<clinit>(FCOK.java:15)
02-28 09:17:25.711: E/AndroidRuntime(284):     ... 14 more

=========================================


Andriod.mk

=========================================

LOCAL_PATH:= $(call my-dir)
include $(CLEAR_VARS)
LOCAL_C_INCLUDES := $(LOCAL_PATH)/src/include
LOCAL_CFLAGS += -fomit-frame-pointer -D_REENTRANT -DPTHREADS
LOCAL_SRC_FILES := BBtest.c

LOCAL_LDLIBS += -ldl
LOCAL_MODULE:= BB
include $(BUILD_SHARED_LIBRARY)

...

...

# libAA 빌드

LOCAL_SRC_FILES := AAtest.c
LOCAL_LDLIBS    := -llog
LOCAL_SHARED_LIBRARIES := libBB

LOCAL_MODULE    := AA
include $(BUILD_SHARED_LIBRARY)

=========================================


우선 답변달아 주신 분들꼐 감사합니다.