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

안드로이드 풀빌드 중 preload App의 SO 파일이 로드가 안됩니다.

0 추천

VLC Player를 preload 앱으로 설정하려고 합니다.

외부 jar와 resource에 대한 처리를 다양한 삽질로 해결하고 보니

so 라이브러리가 로드가 되지 않습니다.

LOCAL_PATH:= $(call my-dir)
include $(CLEAR_VARS)

LOCAL_MODULE_TAGE := optional

LOCAL_SRC_FILES :=\
                  $(call all-java-files-under, src) \
                  $(call all-java-files-under, gen) \

LOCAL_PACKAGE_NAME := VLC

LOCAL_STATIC_JAVA_LIBRARIES := ActionBarSherlock SlidingMenu android-support-v4

LOCAL_SDK_VERSION := current

LOCAL_RESOURCE_DIR :=\
                     $(LOCAL_PATH)/java-libs/ActionBarSherlock/res \
                     $(LOCAL_PATH)/java-libs/SlidingMenu/res \
                     $(LOCAL_PATH)/res \


$(shell cp $(wildcard $(LOCAL_PATH)/libs/armeabi-v7a/*.so) $(TARGET_OUT_INTERMEDIATE_LIBRARIES))

LOCAL_JNI_SHARED_LIBRARIES := libvlcjni libiomx-ics

LOCAL_REQUIRED_MODULES := libvlcjni libiomx-ics

include $(BUILD_PACKAGE)

include $(CLEAR_VARS)

LOCAL_PREBUILT_STATIC_JAVA_LIBRARIES :=ActionBarSherlock:libs/actionbarsherlock.jar
include $(BUILD_MULTI_PREBUILT)


include $(CLEAR_VARS)

LOCAL_PREBUILT_STATIC_JAVA_LIBRARIES :=SlidingMenu:libs/slidingmenuactivity.jar
include $(BUILD_MULTI_PREBUILT)

libvlcjni libiomx-ics 두개의 so파일이 로드 되야 합니다,

구글링 결과, 그냥 LOCAL_JNI_SHARED_LIBRARIES만 해서는 안된다고 해서

$(shell cp $(wildcard $(LOCAL_PATH)/libs/armeabi-v7a/*.so) $(TARGET_OUT_INTERMEDIATE_LIBRARIES))

를 추가하였습니다,

그 결과

/out/target/product/XXXXX/obj/lib 경로에 libvlcjni.so, libiomx-ics.so 두 so 파일이 정상적으로 생긴것을 확인했습니다.

해당 경로에 라이브러리 파일이 존재하고, Android.mk 파일에 LOCAL_JNI_SHARED_LIBRARIES로 필요한 라이브러리 파일을 명시하면 되는게 아닌가요?

혹시나 하고 LOCAL_REQUIRED_MODULES를 추가해서 두 라이브러리를 추가했지만, 안되더군요..ㅠ

추가로 처리해야되는 부분이 있는건가요?

 

답변 부탁드립니다.ㅠㅠㅠㅠ

키키옹 (280 포인트) 님이 2013년 3월 4일 질문

1개의 답변

0 추천
include $(CLEAR_VARS)
LOCAL_MODULE := libvlcjni
LOCAL_MODULE_TAGS := optional
LOCAL_SRC_FILES :=  $(LOCAL_PATH)/libs/armeabi-v7a/libvlcjni.so
include $(BUILD_SHARED_LIBRARY)

이렇게 아예 빌드하는 방식으로 그냥 덮어씌웠습니다.

해보니 so파일은 로드가 되긴 됐습니다.

그런데 어떻게 된 일인지 동영상 플레이는 안되더군요.

이에 관해서 좀 더 연구를 해봐야 겠네요.

키키옹 (280 포인트) 님이 2013년 3월 5일 답변
...