搜索
 找回密码
 立即注册

简单一步 , 微信登陆

Android.mk

作者:Alanz | 时间:2016-9-28 14:41:35 | 阅读:5478| 只看该作者
关于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,之后出现一些导包错误,说什么头文件里面没有定义所使用的方法,这个就有点不理解了!请看下回分解



收藏
收藏0
分享
分享
点赞
点赞0
反对
反对0
回复

使用道具 举报

大神点评4

沙发#
Jack.Lin 发表于:2016-9-28 14:43:19
该会员没有填写今日想说内容.
回复

使用道具 举报

板凳#
Robby.zou 发表于:2016-9-28 22:49:01
该会员没有填写今日想说内容.
回复

使用道具 举报

地板#
steven 发表于:2016-9-29 10:11:25
回复

使用道具 举报

5#
Mike 发表于:2016-9-29 10:21:02
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册
手机版