android编译产生的apk或so不安装 .

来源:互联网 发布:linux显示文件权限 编辑:程序博客网 时间:2024/05/21 07:00
问题1:
问题描述:将java应用放在packages\apps下面一起编译,单独进入应用mm编译,可以install安装到out下面的system/app下面,但根目录上make却不会
原因:LOCAL_MODULE_TAGS :=optional 的模块会被编译,但不会安装到image里面,要想让是optional的模块安装的话,需要将模块名加入到相关product的PRODUCT_PACKAGES里面
解决方法:
修改\build\target\product\core.mk下面的PRODUCT_PACKAGES,加所编译的应用加入其应用包即可,


问题2:
在libhardware下面moudle中实现copybit及openMMX相关hal接口代码,单独进入应用mm编译,可以install安装到out下面的system/lib/hw下面,但根目录上make却不会


解决方法:
Android.mk中的LOCAL_MODULE_TAGS变量设置的有问题。
LOCAL_MODULE_TAGS :=optional
把这项改为
LOCAL_MODULE_TAGS :=eng即可
设置好以后,重新编译即可


原因是LOCAL_MODULE_TAGS 变量跟TARGET_BUILD_VARIANT 变量息息相关。 android系统编译时如果不指定
TARGET_BUILD_VARIANT 变量的值,默认 TARGET_BUILD_VARIANT=eng ,这一项指定 编译android时形成的版本风格

LOCAL_MODULE_TAGS :=user eng tests optional

user: 指该模块只在user版本下才编译

eng: 指该模块只在eng版本下才编译

tests: 指该模块只在tests版本下才编译

optional:指该模块在所有版本下都编译