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

============问题描述============


拷贝的东西多,还有想模块化,单独写一个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加入了一些封装命令。

posted on 2014-10-23 16:41  android基础教程  阅读(2922)  评论(0编辑  收藏  举报

导航

我要啦免费统计