안녕하세요. .so 라이브러리 파일을 가지고 있는 app 을 풀빌드하고 싶습니다.
.so 파일은 현재 /libs/armeabi/libfbuffer.so 에 저장되어 있고.
Android.mk 파일은
////////////////////////////////////////////////////////////////////
LOCAL_PATH:= $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE_TAGS := eng development
LOCAL_SRC_FILES := $(call all-subdir-java-files, src)
LOCAL_PACKAGE_NAME := Drawing
LOCAL_CERTIFICATE := shared
include $(BUILD_PACKAGE)
LOCAL_SHARED_LIBRARIES := libfbuffer
LOCAL_PREBUILT_LIBS := libfbuffer:libs/armeabi/libfbuffer.so
include $(BUILD_MULTI_PREBUILT)
/////////////////////////////////////////////////////////////////////
위와같이 만들어 빌드를 돌리니 일단
out\target\product\model\obj\lib\libfbuffer.so 에
라이브러리 파일이 생성은 되었지만
빌드하여 나온 apk 파일을 열어보면 빌드하여 나온 위의 libfbuffer.so 라이브러리를
포함하고 있지 않아 실행을 하면 라이브러리 파일을 참조하지 못해 에러가 발생하고 있습니다.
구글링을 하여서 찾아본 자료에서는 .so 파일을 빌드시에 apk 파일에 추가하기 위해서는
$(shell cp $(wildcard $(LOCAL_PATH)/lib/armeabi/*.so) $(TARGET_OUT_INTERMEDIATE_LIBRARIES))
LOCAL_JNI_SHARED_LIBRARIES := libfbuffer
이와같이 선언하여
out\target\product\model\obj\lib\
폴더에 libfbuffer.so 가 copy 되도록 하라고 하였는데
위와같은 방법을 써도 라이브러리 파일이 생성되지 않거나
짜집기로 out 폴더에 라이브러리 파일이 생성이 되어도 같은 에러가 발생하고 있습니다.
이미 만들어진 .so 파일을 apk 파일에 포함하여 빌드하는 방법을 알고 계시면 조언좀 부탁드립니다.
좋은하루 되세요.
감사합니다.




제가 질문을 제대로 이해한건지 모르겠네요.. ndk 빌드 결과를 프로젝트의 lib 폴더에 copy되도록하는 설정은 기억이 안나네요. 정안되면 컴파일해서 나온 so 파일을 프로젝트폴더 아래 /libs/armeabi/폴더에 직접 카피해서 넣고 프로젝트를 빌드해보세요. 저 같은경우 lib 소스를 별로 손댈일이 없다보니 자바프로젝트 소스와 lib소스를 따로 관리하는데 lib가 간혹 변경될 경우 ndk를 이용하여 so만 새로 생성해서 직접 프로젝트의 lib/armeabi/ 폴더아래 카피한후 빌드합니다. so가 바껴도 프로젝트가 업데이트된것으로 인식하여 다시 빌드가 되더군요.