Android PRODUCT_COPY_FILES导致的编译错误
2013-04-03 09:24
519 查看
昨天研究Android的Makefile,想要实现拷贝文件功能。上网查资料,查到了可以用PRODUCT_COPY_FILES这个来弄,然后就照着网上的方法这样搞了一把。结果发现还是不行,而且把之前的PRODUCT_COPY_FILES给改动了,还知道怎么还原。这下可好,想要再编译整个ics,就一直给我报错。
The following variables have been changed: PRODUCT_COPY_FILES. Stop
然后我就一直编译不过去了。
上网查了半天,有说这样改的:
修改方法:改两处1)build/core/Makefile:
error改成warning
2)build/core/product.mk
一样,error改成warning (原文:http://blog.csdn.net/xunian123/article/details/7758724)
我发现改了之后,虽然之前报错的地方能编过( 当然能编过啦,因为都只是warning了。。。),但是由于没有解决根本问题,导致编译到后面还是会出错。
继续google,发现了很多问题,但是好多网友都是单独编译某个模块没有完全编译,虽然报错一样,但是性质不一样,大多是没有加"include $(BUILD_PREBUILT)"导致的。
没办法,只能继续从错误信息分析,跟踪报错的mk文件,查到build/core/product.mk,可以看到是由于_product_stash_var_list变量被我之前的PRODUCT_COPY_FILES这个操作误改了。
要怎么还原这个变量呢?我试了重新打开终端source 环境变量、lunch product,发现还是不行。又make clean想重编,发现还是不行。。。。
后来再一想,要不然我先lunch个别的product ,说不定会覆盖我目前的PRODUCT_COPY_FILES这个变量,重赋初值,我再lunche回来,是不是就可以了?
于是就试了试,lunch full,编了一下,报错了;再lunch 12(我的prodcut),再重新编译,OK,过了。。。尼玛-
-
至于找到根本原因,还需要再仔细研究下。如果有大神知晓的,也求指导~
The following variables have been changed: PRODUCT_COPY_FILES. Stop
然后我就一直编译不过去了。
上网查了半天,有说这样改的:
修改方法:改两处1)build/core/Makefile:
error改成warning
2)build/core/product.mk
一样,error改成warning (原文:http://blog.csdn.net/xunian123/article/details/7758724)
我发现改了之后,虽然之前报错的地方能编过( 当然能编过啦,因为都只是warning了。。。),但是由于没有解决根本问题,导致编译到后面还是会出错。
继续google,发现了很多问题,但是好多网友都是单独编译某个模块没有完全编译,虽然报错一样,但是性质不一样,大多是没有加"include $(BUILD_PREBUILT)"导致的。
没办法,只能继续从错误信息分析,跟踪报错的mk文件,查到build/core/product.mk,可以看到是由于_product_stash_var_list变量被我之前的PRODUCT_COPY_FILES这个操作误改了。
251 # Assert that the the variable stashed by stash-product-vars remains untouched. 252 # $(1): The prefix as supplied to stash-product-vars 253 # 254 define assert-product-vars 255 $(strip \ 256 $(eval changed_variables:=) 257 $(foreach v,$(_product_stash_var_list), \ 258 $(if $(call streq,$($(v)),$($(strip $(1))_$(call rot13,$(v)))),, \ 259 $(eval $(warning $(v) has been modified: $($(v)))) \ 260 $(eval $(warning previous value: $($(strip $(1))_$(call rot13,$(v))))) \ 261 $(eval changed_variables := $(changed_variables) $(v))) \ 262 ) \ 263 $(if $(changed_variables),\ 264 $(eval $(error The following variables have been changed: $(changed_variables))),) 265 ) 266 endef
要怎么还原这个变量呢?我试了重新打开终端source 环境变量、lunch product,发现还是不行。又make clean想重编,发现还是不行。。。。
后来再一想,要不然我先lunch个别的product ,说不定会覆盖我目前的PRODUCT_COPY_FILES这个变量,重赋初值,我再lunche回来,是不是就可以了?
于是就试了试,lunch full,编了一下,报错了;再lunch 12(我的prodcut),再重新编译,OK,过了。。。尼玛-
-
至于找到根本原因,还需要再仔细研究下。如果有大神知晓的,也求指导~
相关文章推荐
- Android——编译体系中的【PRODUCT_COPY_FILES】【ALL_PREBUILT】【BUILD_PREBUILT
- Android——编译体系中的【PRODUCT_COPY_FILES】【ALL_PREBUILT】【BUILD_PREBUILT】
- Android——编译体系中的【PRODUCT_COPY_FILES】【ALL_PREBUILT】【BUILD_PREBUILT】
- Android编译PRODUCT_COPY_FILES如果碰到重复的项目如何取值
- 有关编译嵌入式android的swap空间不够导致的编译错误和解决办法
- Android 编译环境配置搭建(Ubuntu 12.04)及环境导致编译错误QA
- Android中的 Multiple dex files define 编译错误引发的思考
- Android应用配置错误导致不能编译--配成系统应用
- Android PRODUCT_COPY_FILES 自动拷贝文件
- Android 编译环境配置搭建(Ubuntu 14)及环境导致编译错误
- cocos2d-x创建android工程工程名字有“-”导致不生成jni目录,编译错误
- Android 为一个新产品作编译配置(Product Definition Files)
- AS编译错误:Android Duplicate files copied in APK
- Android 为一个新产品作编译配置(Product Definition Files)
- Android 用PRODUCT_COPY_FILES拷贝xml文件怎么还能被检查语法问题呢?
- android 项目R.java文件缺失导致编译错误
- Android 为一个新产品作编译配置(Product Definition Files)
- Android studio编译错误 duplicate files during packaging of APK...error
- Android中的 Multiple dex files define 编译错误引发的思考
- Android 编译环境配置搭建(Ubuntu 12.04)及环境导致编译错误QA