2014-11-05 2 views
0

Немного о проблеме здесь. Я пытаюсь передать через приложение с открытым исходным кодом IMSdroid для работы с более новыми и более последовательными системами сборки. У меня уже есть ANT, работающий правильно, но для работы в Android.mk нужно также упростить жизнь. (Сделайте все перестроения автоматизированными с помощью Gradle и Android.mk, что облегчает добавление новых возможностей и кодеков.)Android.mk, чернила, но не включая Shared Libs на выходе

Файлы 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) в конце.

  • Попробуйте добавить путь к ссылкам LOCAL_SRC_FILES для exmaple:

    local_path: = $ (назовем мой-Dir)

    включают $ (CLEAR_VARS)

    LOCAL_MODULE: = libplugin_audio_opensles

    LOCAL_SRC_FILES: = $ (local_path) /libplugin_audio_opensles.so

    включают $ (PREBUILT_SHARED_LIBRARY)

  • Кроме того, проверьте https://android.googlesource.com/platform/packages/apps/Camera2/+/android-4.4.4_r2.0.1/Android.mk - Вы могли бы могли бы попробовать, что LOCAL_JNI_SHARED_LIBRARIES

+0

LOCAL_JNI_SHARED_LIBRARIES был КЛЮЧ! Также необходимо принудительно вставить систему для распознавания, чтобы они вставляли эти фрагменты в/obj для внешней папки в качестве ссылки для сборки устройства. – childofthehorn

Смежные вопросы