2014-11-05 82 views
0

这里有一点问题。我试图移植开源应用程序IMSdroid以使用更新,更一致的构建系统。我已经得到ANT正常工作,但需要Android.mk以及使生活更轻松。 (使用Gradle和Android.mk自动完成所有重建,从而可以更轻松地添加新功能和编解码器。)Android.mk,输出但不包括共享库输出

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内置有包含所有的库文件/库出现。在这一点上,它没有。

回答

2

情侣观察:

  • 在你的第一个Android.mk文件,我不认为你需要的include $(BUILD_SHARED_LIBRARY)末。

  • 尝试在前面加上路径LOCAL_SRC_FILES参考,对于〔实施例:

    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 2014-11-07 20:29:00