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 的回复:
话说能不能提供一个简单的Android.mk呀,你这个命令是能理解,但是如何让Android的build的系统执行似乎有点难度,也不太理解。
就把你的$(shell cp -fr .. .. )语句放到Android.mk文件include $(CLEAR_VARS)这句后面。
楼主说的不太理解是不是指拷贝路径上,有些变量$(TARGET_OUT) ???
./ 就是指你当前编译环境的根目录。
./packages/apps/Phone 等等
============解决方案3============
引用 5 楼 kangear 的回复:
话说能不能提供一个简单的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加入了一些封装命令。
拷贝的东西多,还有想模块化,单独写一个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/)
楼主要拷贝东西的话 可以用$(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/)
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加入了一些封装命令。
相关文章推荐
- PRODUCT_COPY_FILES的深入理解,为何不能在Android.mk使用
- Android编译PRODUCT_COPY_FILES如果碰到重复的项目如何取值
- Android——编译体系中的【PRODUCT_COPY_FILES】【ALL_PREBUILT】【BUILD_PREBUILT】
- Android PRODUCT_COPY_FILES导致的编译错误
- Android——编译体系中的【PRODUCT_COPY_FILES】【ALL_PREBUILT】【BUILD_PREBUILT
- Android 用PRODUCT_COPY_FILES拷贝xml文件怎么还能被检查语法问题呢?
- Android PRODUCT_COPY_FILES 自动拷贝文件
- Android——编译体系中的【PRODUCT_COPY_FILES】【ALL_PREBUILT】【BUILD_PREBUILT】
- 编写Android.mk中的LOCAL_SRC_FILES的终极技巧
- 自己编译的Android sdk不能被识别的问题
- Android.mk 中的 LOCAL_SRC_FILES, LOCAL_C_INCLUDES
- 编写Android.mk中的LOCAL_SRC_FILES的终极技巧
- 编写Android.mk中的LOCAL_SRC_FILES的终极技巧
- android系统访问自己的tomcat服务器下的项目不能访问的原因
- 编写Android.mk中的LOCAL_SRC_FILES的终极技巧
- Android 为一个新产品作编译配置(Product Definition Files)
- 编写Android.mk中的LOCAL_SRC_FILES的终极技巧
- Android.mk中 LOCAL_COPY_HEADERS_TO 和 LOCAL_COPY_HEADERS的作用
- android.mk copy system\media
- Android.mk LOCAL_SRC_FILES添加多个文件