android自己添加的模块在user模式下不编译的问题
16lz
2021-01-26
android自己添加的模块在user模式下不编译的问题
我们在开发中,经常会碰到需要自己添加独立模块的时候,笔者以前也没太关心这个问题,以为写好Android.mk就可以了,其实还不是这么回事。
/*****************************************************************************************************/
声明:本博内容均由http://blog.csdn.net/sundesheng125原创,转载请注明出处,谢谢!
/*****************************************************************************************************/
把自定义的模块放在android顶层目录development下面,比如模块名字是libcsiJni,模块的Android.mk如下:
ifeq ($(TARGET_PRODUCT),crane_EW1021H_C)LOCAL_PATH:= $(call my-dir)include $(CLEAR_VARS)LOCAL_MODULE_TAGS := optional eng#LOCAL_MODULE_TAGS := engLOCAL_SRC_FILES := csilib.cpp LOCAL_C_INCLUDES:= \ $(TOP)/device/softwinner/common/hardware/include \ $(TOP)/frameworks/base/include \ device/softwinner/crane-common/hardware/libcsidecoder LOCAL_SHARED_LIBRARIES:= libutils libbinder libui liblog libcutils libcsidecoderifeq ($(DLOPEN_LIBSECCAMERA),1)LOCAL_SHARED_LIBRARIES+= libdlendifLOCAL_PRELINK_MODULE := falseLOCAL_MODULE:= libcsiJniinclude $(BUILD_SHARED_LIBRARY)endif
在使用eng模式下编译,能够正常编译出来。但是在user模式下不编译,手动进入该目录,执行mm可以正常编译。Eng跟user版本的差异我们一般也知道,但是使用的optional,按道理说是所有模式下都可以编译的。什么原因呢?
从现象上看,应该是编译路径没有添加进去。搜索了一下资料,自定义的模块需要添加编译指定,PRODUCT_PACKAG环境变量。可以在device下面具体产品目录下的crane_productXXX.mk中或者build/target/product/core.mk中添加,示例如下:
PRODUCT_PACKAGES += \ libcsiecoder \ libcsiJni \ CSIIN
本身这种问题就是很初级的问题,没什么技术含量,就当做个笔记吧!
更多相关文章
- 编译Android下纯C的静态程序,undefined reference to raise
- 给android imageView(图片) 添加超链接
- Android(安卓)Studio下添加assets目录
- android studio自定义生成jar包基础篇
- 给按钮添加点击效果小结
- Android(安卓)RecyclerView最全使用详解
- AOSP ON MAKO(在NEXUS 4上刷ANDROID 4.4 源码包-下载/配置/编译/
- ubuntu 10.10 编译Android2.2问题解决
- Android(安卓)P Camera App(一)