SuperIC社区_

标题: Android.mk [打印本页]

作者: Alanz    时间: 2016-9-28 14:41
标题: Android.mk
关于mk的资料网上都很多,但是那是别人的,自己写代码还是会遇到这种那种问题!我就拿我编译时
遇到坑人的问题来说;

写一个jni,也要写相应的Android.mk,但是菜鸟啊,怎么写?反正我是不会自己写,所以只能模仿咯,模仿
也是一个学习的过程,比如下面的(xxx代表自己给so文件起的名)
    include $(CLEAR_VARS)
    LOCAL_MODULE := libxxx_jni
    LOCAL_MODULE_TAGS := optional
    LOCAL_SRC_FILES := \
     com_厂商_android_tvapi_common_xxx.cpp
    LOCAL_C_INCLUDES := \
       $(JNI_H_INCLUDE) \
       frameworks/base/core/jni \
       device/厂商/common/libraries/resourcemanager/include \
       $(TARGET_TVAPI_LIBS_DIR)/include \
       $(TARGET_TVAPI_LIBS_DIR)/../msrv/common/inc \
       $(TARGET_TVAPI_LIBS_DIR)/../../core/muf/tvos/include
   LOCAL_SHARED_LIBRARIES := \
       libandroid_runtime \
       libnativehelper \
       libcutils \
       libutils \
       libbinder \
       libtvresholder \
       xxx
    LOCAL_REQUIRED_MODULES := xxx
    LOCAL_CFLAGS += $(local_tvjni_cflags)
    include $(BUILD_SHARED_LIBRARY)
以上全是照搬,但是照搬是会出错,就像我现在就遇到的make: *** No rule to make target `out/target/product/arbutus/obj/SHARED_LIBRARIES/xxx_intermediates/export_includes', needed by `out/target/product/arbutus/obj/SHARED_LIBRARIES/xxx_jni_intermediates/import_includes'.  Stop.,编译xxx它需要编译xxx_jni啊,这样的问题怎么解决呢,就是把LOCAL_SHARED_LIBRARIES 和LOCAL_REQUIRED_MODULES 的xxx去掉;拨开云雾见日月,搞定;整完之后就像知道我改其他之后会出现什么问题,比如我注释   $(TARGET_TVAPI_LIBS_DIR)/../msrv/common/inc \
       $(TARGET_TVAPI_LIBS_DIR)/../../core/muf/tvos/include,之后出现一些导包错误,说什么头文件里面没有定义所使用的方法,这个就有点不理解了!请看下回分解




作者: Jack.Lin    时间: 2016-9-28 14:43

作者: Robby.zou    时间: 2016-9-28 22:49

作者: steven    时间: 2016-9-29 10:11

作者: Mike    时间: 2016-9-29 10:21





欢迎光临 SuperIC社区_ (/) Powered by Discuz! X3.3