PRODUCT_COPY_FILES 客户配置无法覆盖的问题
2016-10-20 15:44
519 查看
通常情况下,我们需要在各个客户配置目录下新建一个customer_xxx.mk来配置一个客户单独的属性、apk、文件等。
当在android源码下的device目录也存在同样的文件的时候,如果要让客户配置”覆盖”device目录下的文件,那需要将客户的customer_xxx.mk在拷贝对应文件之前include,否则无法”覆盖”,这里加了双引号的原因是它其实并没有覆盖,它是拷贝了第一个,第二个根本就没有去拷贝。
具体的原因是:我们知道makefile的规则是根据文件是否更新来选择是否执行编译动作。比如我要拷贝init.rc,假设现在out目录下是空的,这时候我编译,编译到第一句拷贝动作的时候系统将init.rc拷贝到root目录下,这时候的init.rc时间是比客户配置下的init.rc或者device目录下的init.rc都要新的,所以当执行到第二句拷贝的时候,由于root目录下的文件时间是更新的,所以不执行第二句文件拷贝。
至此,我们就可以知道为什么客户配置无法覆盖的问题了,是由于customer_xxx.mk放在了对应文件拷贝之后了。也是我们潜意识下导致该错误的,我们认为后面拷贝会覆盖前面的拷贝。。。 -_-。
当在android源码下的device目录也存在同样的文件的时候,如果要让客户配置”覆盖”device目录下的文件,那需要将客户的customer_xxx.mk在拷贝对应文件之前include,否则无法”覆盖”,这里加了双引号的原因是它其实并没有覆盖,它是拷贝了第一个,第二个根本就没有去拷贝。
具体的原因是:我们知道makefile的规则是根据文件是否更新来选择是否执行编译动作。比如我要拷贝init.rc,假设现在out目录下是空的,这时候我编译,编译到第一句拷贝动作的时候系统将init.rc拷贝到root目录下,这时候的init.rc时间是比客户配置下的init.rc或者device目录下的init.rc都要新的,所以当执行到第二句拷贝的时候,由于root目录下的文件时间是更新的,所以不执行第二句文件拷贝。
至此,我们就可以知道为什么客户配置无法覆盖的问题了,是由于customer_xxx.mk放在了对应文件拷贝之后了。也是我们潜意识下导致该错误的,我们认为后面拷贝会覆盖前面的拷贝。。。 -_-。
相关文章推荐
- Android 用PRODUCT_COPY_FILES拷贝xml文件怎么还能被检查语法问题呢?
- svn无法提交问题,The working copy failed to commit files
- 记录一个 spring cloud 配置中心的坑,命令行端口参数无效,被覆盖,编码集问题无法读取文件等.
- 解决在Fedora 12 中配置后Samba服务后,Windows依然无法访问Linux共享目录的问题。
- vista 64无法正常安装驱动的问题--SetupCopyOEMInf
- phpMyAdmin“无法载入 mysql 扩展, 请检查 PHP 配置”问题的解决方案
- phpMyAdmin“无法载入 mysql 扩展, 请检查 PHP 配置”问题的解决方案
- 问题解决:无法载入MYSQL扩展,请检查PHP配置
- WM模拟器 中无法传输UDP包的解决方法( 的配置问题 )
- 因计算机磁盘硬件配置问题windows无法启动及HP系列机器不能使用GHOST的解决方法
- cygwin中svn版本过低无法读取高版本的workcopy的问题
- Lomboz 中无法配置JBoss5 Server的问题
- 菜鸟必看--关于JDK怎样在有还原软件的机器上配置及无法使用的问题
- VS2005 解决"应用程序配置不正确,程序无法启动"问题
- iis,配置好网站无法访问问题
- H3C交换机dot1X+AD+IAS+CA配置实验(解决用户尚未登录无法验证问题)
- 疑问:配置Web.Config时出现无法连接到 SQL Server 数据库的问题!!!(已解决)
- sshd_config配置问题导致无法用密钥对自动登录
- 解决安装Domino for Linux时配置的Web服务器无法启动的问题
- linux启动控制台配置以及网络启动设置,root无法登陆进入问题