关于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,之后出现一些导包错误,说什么头文件里面没有定义所使用的方法,这个就有点不理解了!请看下回分解 
 
 
 
 |