build立禁用dexpreopt的独立Android模块

对于我的论文,我正在修改android框架和构build源代码(4.1.1 Jelly Bean)。 我可以做一个完整的构build,但因为这是非常耗时的(我正在开发一个Ubuntu 12.04 64位虚拟机)我想build立单独的模块。

例如:在对位置模块进行更改时,应该可以构build更改的模块,并创build一个新的系统映像:

mmm frameworks/base make snod 

但是这不起作用。 每次我尝试启动,新的系统映像将无法启动,因为:

 I/dalvikvm( 1696): DexOpt: mismatch dep signature for '/system/framework/framework.odex' 

经过一番研究,我试图用环境variables禁用dexpreopt

 export $WITH_DEXPREOPT=false 

 export $DISABLE_DEXPREOPT=true 

并用“make installclean”进行全面重build。 完整的重build工作,以及框架的变化都出现在构build中。 但是在做了一个新的更改之后,'mmm frameworks / base'和'make snod'会导致dexpreopt不匹配。

'make snod'中的build / core / makefile也会给出警告:'警告:启用dexpreopt的时候,你可能需要完全重build',它来自makefile中的这一行:

 ifeq (true,$(WITH_DEXPREOPT)) $(warning Warning: with dexpreopt enabled, you may need a full rebuild.) endif 

这导致我相信$ WITH_DEXPREOPTvariables没有正确设置或读取? 到目前为止,我还没有得到一个可启动的系统映像,没有做一个干净的完整重build。 我正在按照正确的步骤来禁用dexpreopt,还有其他的方法来修改框架和获得新的系统映像后,build立单独的模块吗?

build立目标是“全职”。

Solutions Collecting From Web of "build立禁用dexpreopt的独立Android模块"

显然,WITH_DEXPREOPT环境variables被内部的WITH_DEXPREOPTvariables覆盖

 build/target/board/generic/BoardConfig.mk 

把这个改成假的,或者根据谷歌群体的人,开始做一个:

 make showcommands WITH_DEXPREOPT=false 

做的伎俩。 构build一个特定的模块并创build一个新的系统映像现在将导致可引导的构build。

(来源: https : //groups.google.com/d/topic/android-building/vJCkg8Yq9Ic/discussion )