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可以正常编译。Enguser版本的差异我们一般也知道,但是使用的optional,按道理说是所有模式下都可以编译的。什么原因呢?

从现象上看,应该是编译路径没有添加进去。搜索了一下资料,自定义的模块需要添加编译指定,PRODUCT_PACKAG环境变量。可以在device下面具体产品目录下的crane_productXXX.mk中或者build/target/product/core.mk中添加,示例如下:

PRODUCT_PACKAGES += \    libcsiecoder \    libcsiJni \    CSIIN

本身这种问题就是很初级的问题,没什么技术含量,就当做个笔记吧!

更多相关文章

  1. 编译Android下纯C的静态程序,undefined reference to raise
  2. 给android imageView(图片) 添加超链接
  3. Android(安卓)Studio下添加assets目录
  4. android studio自定义生成jar包基础篇
  5. 给按钮添加点击效果小结
  6. Android(安卓)RecyclerView最全使用详解
  7. AOSP ON MAKO(在NEXUS 4上刷ANDROID 4.4 源码包-下载/配置/编译/
  8. ubuntu 10.10 编译Android2.2问题解决
  9. Android(安卓)P Camera App(一)

随机推荐

  1. Mysql中undo、redo与binlog的区别浅析
  2. Mysql 日期格式化及复杂日期区间查询
  3. MySQL读取my.cnf的顺序问题详情
  4. MySQL 日期时间加减的示例代码
  5. MYSQL METADATA LOCK(MDL LOCK) 理论及加
  6. MySQL是怎么保证主备一致的
  7. Mysql ALTER TABLE加字段的时候到底锁不
  8. 基于 Mysql 实现一个简易版搜索引擎
  9. MySQL的从库Seconds_Behind_Master延迟总
  10. MySQL数据库 Load Data 多种用法