2014-11-05 3 views
0

여기에 약간의 문제가 있습니다. 오픈 소스 애플리케이션 인 IMSdroid를보다 새롭고 일관성있는 빌드 시스템으로 작업하기 위해 이식하려고합니다. 이미 ANT가 올바르게 작동하고 있지만 Android.mk를 사용하면 더 쉽게 사용할 수 있습니다. (Gradle 및 Android.mk로 모든 재구성을 자동화하여 새로운 기능과 코덱을 쉽게 추가 할 수 있습니다.)Android.mk, 출력에 공유 Lib을 포함하지 않고 잉크로 묻습니다.

JAR 파일이 정상적으로 작동합니다.

.so 파일은 최종 APK에 포함되지 않습니다. Android.mk로 시작한 첫 번째 시간이 아니며이 문제는 저를 혼란스럽게합니다.

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

LOCAL_MODULE_TAGS := optional 

LOCAL_CERTIFICATE := debug 
LOCAL_PACKAGE_NAME := IMSdroid 

LOCAL_JAVA_LIBRARIES := telephony-common telephony-msim 
LOCAL_STATIC_JAVA_LIBRARIES := android-support-v4 android-support-v13 libandroid-ngn-stack libsimple-xml-2.3.4 

LOCAL_SHARED_LIBRARIES := libplugin_audio_opensles libtinyWRAP libutils 

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

LOCAL_PROGUARD_ENABLED := disabled 

include $(BUILD_PACKAGE) 

################################################## 
include $(CLEAR_VARS) 

LOCAL_PREBUILT_STATIC_JAVA_LIBRARIES := libandroid-ngn-stack:libs/android-ngn-stack.jar libsimple-xml-2.3.4:libs/simple-xml-2.3.4.jar 

include $(BUILD_MULTI_PREBUILT) 

################################################## 
include $(call all-makefiles-under,$(LOCAL_PATH)) 

LOCAL_LDFLAGS := -L$(LOCAL_PATH)/jni/ 

include $(BUILD_SHARED_LIBRARY) 

그런 다음/JNI 폴더

include $(CLEAR_VARS) 

LOCAL_MODULE := libplugin_audio_opensles 
LOCAL_SRC_FILES := libplugin_audio_opensles.so 

include $(PREBUILT_SHARED_LIBRARY) 

include $(CLEAR_VARS) 

LOCAL_MODULE := libtinyWRAP 
LOCAL_SRC_FILES := libtinyWRAP.so 

include $(PREBUILT_SHARED_LIBRARY) 
include $(CLEAR_VARS) 

LOCAL_MODULE := libutils 
LOCAL_SRC_FILES := libutils_armv5te.so 

include $(PREBUILT_SHARED_LIBRARY) 

include $(CLEAR_VARS) 

LOCAL_MODULE := libtinyWRAP_neon 
LOCAL_SRC_FILES := libtinyWRAP_neon.so 

include $(PREBUILT_SHARED_LIBRARY) 

에 나는 기본적으로 내장으로 APK가 라이브러리 파일을 모두 포함/libs와 함께 표시해야합니다. 이 시점에서 그렇지 않습니다. 관찰

답변

2

커플 :

  • 첫 번째 Android.mk 파일에서, 나는 당신이 마지막에 include $(BUILD_SHARED_LIBRARY) 필요하다고 생각하지 않습니다.

  • exmaple를 들어, LOCAL_SRC_FILES 참조 경로를 앞에 추가하십시오 :

    LOCAL_PATH : = $ (내-DIR 전화)

    는 $ (CLEAR_VARS)를 포함

    LOCAL_MODULE = libplugin_audio_opensles

    LOCAL_SRC_FILES는 : = $ (LOCAL_PATH는)

    ,691을 /libplugin_audio_opensles.so

    https://android.googlesource.com/platform/packages/apps/Camera2/+/android-4.4.4_r2.0.1/Android.mk 체크 아웃, 또한 $ (PREBUILT_SHARED_LIBRARY)

  • 을 포함 - 당신이 LOCAL_JNI_SHARED_LIBRARIES

+0

가 LOCAL_JNI_SHARED_LIBRARIES 주요 것을 시도 할 수 있습니다! 또한 인식을 위해 시스템을 강제로 끌어 와서 장치를 빌드 할 때 참조로 out 폴더의/obj에 그 조각을 넣을 필요가 있습니다. – childofthehorn