自己添加的android模块不编译的问题
2015-05-07 17:28
357 查看
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
plaincopy
ifeq ($(TARGET_PRODUCT),crane_EW1021H_C)
LOCAL_PATH:= $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE_TAGS := optional eng
#LOCAL_MODULE_TAGS := eng
LOCAL_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 libcsidecoder
ifeq ($(DLOPEN_LIBSECCAMERA),1)
LOCAL_SHARED_LIBRARIES+= libdl
endif
LOCAL_PRELINK_MODULE := false
LOCAL_MODULE:= libcsiJni
include $(BUILD_SHARED_LIBRARY)
endif
在使用eng模式下编译,能够正常编译出来。但是在user模式下不编译,手动进入该目录,执行mm可以正常编译。Eng跟user版本的差异我们一般也知道,但是使用的optional,按道理说是所有模式下都可以编译的。什么原因呢?
从现象上看,应该是编译路径没有添加进去。搜索了一下资料,自定义的模块需要添加编译指定,PRODUCT_PACKAG环境变量。可以在device下***体产品目录下的crane_productXXX.mk中或者build/target/product/core.mk中添加,示例如下:
[plain] view
plaincopy
PRODUCT_PACKAGES += \
libcsiecoder \
libcsiJni \
CSIIN
本身这种问题就是很初级的问题,没什么技术含量,就当做个笔记吧!
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
plaincopy
ifeq ($(TARGET_PRODUCT),crane_EW1021H_C)
LOCAL_PATH:= $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE_TAGS := optional eng
#LOCAL_MODULE_TAGS := eng
LOCAL_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 libcsidecoder
ifeq ($(DLOPEN_LIBSECCAMERA),1)
LOCAL_SHARED_LIBRARIES+= libdl
endif
LOCAL_PRELINK_MODULE := false
LOCAL_MODULE:= libcsiJni
include $(BUILD_SHARED_LIBRARY)
endif
在使用eng模式下编译,能够正常编译出来。但是在user模式下不编译,手动进入该目录,执行mm可以正常编译。Eng跟user版本的差异我们一般也知道,但是使用的optional,按道理说是所有模式下都可以编译的。什么原因呢?
从现象上看,应该是编译路径没有添加进去。搜索了一下资料,自定义的模块需要添加编译指定,PRODUCT_PACKAG环境变量。可以在device下***体产品目录下的crane_productXXX.mk中或者build/target/product/core.mk中添加,示例如下:
[plain] view
plaincopy
PRODUCT_PACKAGES += \
libcsiecoder \
libcsiJni \
CSIIN
本身这种问题就是很初级的问题,没什么技术含量,就当做个笔记吧!
相关文章推荐
- android自己添加的模块在user模式下不编译的问题
- 自己添加的android模块不编译的问题
- openwrt添加自己的应用程序(SDK下编译模块)出现的问题
- 关于Android的硬件抽象层添加进Android系统默认编译的问题
- Android framework中修改或者添加资源无变化或编译不通过问题详解
- android源码模块编译出现的问题
- 在ubuntu12.04下编译android4.1.2添加JNI层出现问题
- Android - 模块添加与编译
- Android开发-工具:Android Studio 怎么添加使用第三方jar包及无法编译的问题解决方法
- jni编译问题:jin中添加LOG方法以及undefined reference to `__android_log_print'错误
- 关于bjam编译自己模块出错的问题
- 【转】单独编译android framework模块出现的问题
- 如何在android设备上insmod自己单独编译的.ko,解决签名问题
- 解决Nginx添加openssl模块编译时报错问题
- Android - 模块添加与编译
- Android基础问题总结-1-如何在编译时向Android任一目录添加文件
- 自己编译的Android sdk不能被识别的问题
- 【游戏开发备注之一】关于Cocos2dx_v1.x版本iphone与Android运行出现图片白块、添加GameCenter报错问题及编译Android闪退的解决办法&&CCLOG与CClog的区别
- 单独编译android framework模块出现的问题
- Android framework中修改或者添加资源无变化或编译不通过问题详解