自己添加的android模块不编译的问题

1、android 5.0

including ./hardware/invensense/Android.mk ...
TARGET_2ND_ARCH--yes
build/core/shared_library.mk:12: sensors.mt: LOCAL_MODULE_PATH for shared libraries is unsupported in multiarch builds, use LOCAL_MODULE_RELATIVE_PATH instead
build/core/base_rules.mk:550: 警告:覆盖关于目标“out/target/product//system/lib/hw/sensors.mt.so”的命令
build/core/base_rules.mk:550: 警告:忽略关于目标“out/target/product//system/lib/hw/sensors.mt.so”的旧命令
build/core/dynamic_binary.mk:84: 警告:覆盖关于目标“out/target/product//symbols/system/lib/hw/sensors.mt.so”的命令
build/core/dynamic_binary.mk:84: 警告:忽略关于目标“out/target/product//symbols/system/lib/hw/sensors.mt.so”的旧命令



2、自定义模块需要添加编译指定PRODUCT_PACKAG环境变量

我们在开发中,经常会碰到需要自己添加独立模块的时候,笔者以前也没太关心这个问题,以为写好Android.mk就可以了,其实还不是这么回事。

把自定义的模块放在android顶层目录development下面,比如模块名字是libcsiJni,模块的Android.mk如下:

[plain] view plain copy
  1. ifeq($(TARGET_PRODUCT),crane_EW1021H_C)
  2. LOCAL_PATH:=$(callmy-dir)
  3. include$(CLEAR_VARS)
  4. LOCAL_MODULE_TAGS:=optionaleng
  5. #LOCAL_MODULE_TAGS:=eng
  6. LOCAL_SRC_FILES:=csilib.cpp
  7. LOCAL_C_INCLUDES:=\
  8. $(TOP)/device/softwinner/common/hardware/include\
  9. $(TOP)/frameworks/base/include\
  10. device/softwinner/crane-common/hardware/libcsidecoder
  11. LOCAL_SHARED_LIBRARIES:=libutilslibbinderlibuilibloglibcutilslibcsidecoder
  12. ifeq($(DLOPEN_LIBSECCAMERA),1)
  13. LOCAL_SHARED_LIBRARIES+=libdl
  14. endif
  15. LOCAL_PRELINK_MODULE:=false
  16. LOCAL_MODULE:=libcsiJni
  17. include$(BUILD_SHARED_LIBRARY)
  18. endif

在使用eng模式下编译,能够正常编译出来。但是在user模式下不编译,手动进入该目录,执行mm可以正常编译。Enguser版本的差异我们一般也知道,但是使用的optional,按道理说是所有模式下都可以编译的。什么原因呢?

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

[plain] view plain copy
  1. PRODUCT_PACKAGES+=\
  2. libcsiecoder\
  3. libcsiJni\
  4. CSIIN

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


更多相关文章

  1. 编译生成可执行文件(Android(安卓)studio中)并在android设备中执行
  2. NestedScrollView中添加一个android:fillViewport="true"
  3. Android(安卓)APK 反编译工具
  4. Android(安卓)添加桌面快捷方式操作
  5. android 源码编译报错记录
  6. android之service
  7. Android(安卓)studio中关于 No cached version of **** availabl
  8. DataBinding(双向绑定)
  9. android:taskAffinity属性的简单测试

随机推荐

  1. Android上的模拟点击
  2. android实践项目一实现简单的验证码和spi
  3. android支持多行的radiogroup
  4. Android解决父控件拦截子控件手势滑动事
  5. android手机客户端上传文件,java servlet
  6. Android(安卓)模拟新浪微博-随便看看栏目
  7. android 多点触控
  8. Android(安卓)通讯录中用到的关于按名字
  9. linearLayout 和 relativeLayout的属性区
  10. android listview custom style 自定义样