您的位置:首页 > 移动开发 > Android开发

PRODUCT_COPY_FILES不能写到自己的Android.mk中吗?

2014-10-23 16:41 465 查看
============问题描述============

拷贝的东西多,还有想模块化,单独写一个android.mk,结果编译时会出现:

build/core/main.mk:528: *** The following variables have been changed: PRODUCT_COPY_FILES。 停止。

make:离开目录“/home/。。。”

如何是好呢?

============解决方案1============

楼主要拷贝东西的话 可以用$(shell cp -rf srcPath destPath) 命令

例如:

$(shell cp -rf $(LOCAL_PATH)/xml/hs_customize_asdp.xml $(TARGET_OUT)/etc/hs_customize_asdp/)

============解决方案2============

引用 3 楼 kangear 的回复:
Quote: 引用 1 楼 ncepu307 的回复:

楼主要拷贝东西的话 可以用$(shell cp -rf srcPath destPath) 命令

例如:

$(shell cp -rf $(LOCAL_PATH)/xml/hs_customize_asdp.xml $(TARGET_OUT)/etc/hs_customize_asdp/)


话说能不能提供一个简单的Android.mk呀,你这个命令是能理解,但是如何让Android的build的系统执行似乎有点难度,也不太理解。

就把你的$(shell cp -fr .. .. )语句放到Android.mk文件include $(CLEAR_VARS)这句后面。

楼主说的不太理解是不是指拷贝路径上,有些变量$(TARGET_OUT) ???

./ 就是指你当前编译环境的根目录。

./packages/apps/Phone 等等

============解决方案3============

引用 5 楼 kangear 的回复:
Quote: 引用 4 楼 ncepu307 的回复:

Quote: 引用 3 楼 kangear 的回复:

Quote: 引用 1 楼 ncepu307 的回复:

楼主要拷贝东西的话 可以用$(shell cp -rf srcPath destPath) 命令

例如:

$(shell cp -rf $(LOCAL_PATH)/xml/hs_customize_asdp.xml $(TARGET_OUT)/etc/hs_customize_asdp/)


话说能不能提供一个简单的Android.mk呀,你这个命令是能理解,但是如何让Android的build的系统执行似乎有点难度,也不太理解。

就把你的$(shell cp -fr .. .. )语句放到Android.mk文件include $(CLEAR_VARS)这句后面。

楼主说的不太理解是不是指拷贝路径上,有些变量$(TARGET_OUT) ???

./ 就是指你当前编译环境的根目录。

./packages/apps/Phone 等等

明白了,我不明白的是前者:关于Android怎么编译时如何运行命令。我是从linux做起的对于 路径和linux的拷贝还是知道的。十分感谢。 其实PRODUCT_COPY_FILES还有一个缺点,刚刚测试出来的,最好不要拷贝可执行程序,拷贝过去是没有执行权限的。你这方法好是好了一些,怎么感觉有点不人道呀,这么说一切想干的事都直接用shell搞了,怎么感觉像是绕过了Android的机制,Google应该不推荐这样做吧。

没有看到过Google的文档说不推荐使用,编译android源码的机制就是基于Linux下的makefile,也就是使用gcc 或g++;针对Android加入了一些封装命令。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: