android自己添加的模块在user模式…

本文讨论了在Android开发中遇到的问题:如何确保自定义模块在不同编译模式下都能正常编译。通过添加特定环境变量,解决了模块在user模式下无法编译的问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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


声明:本博内容均由http://blog.youkuaiyun.com/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 := 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中添加,示例如下:

PRODUCT_PACKAGES += 

    libcsiecoder 

    libcsiJni 

    CSIIN

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值