之前遇到一个问题push framework.jar后无法开机,最近有同事问了一下,太久了自己都忘了,因此做下记录
有些安卓编译时默认会生成oat文件,把所有jar中的dex文件删掉,因为可以节省体积,加快首次开机速度俗称预编译,因为默认吧dex文件删掉了,我们删掉了framework.jar,/system/framework/arm/, /system/framework/oat/重新开机需要重新生成bootclass,因为缺少dex文件就会生成失败,导致无法开机,解决方法,在BoardConfig.mk中添加如下代码,全局配置不要删除dex文件
ifneq ($(TARGET_BUILD_VARIANT),user)
# Retain classes.dex in APK's for non-user builds
DEX_PREOPT_DEFAULT := nostripping
endif
除了user版本都不要删除dex文件
app可以在Android.mk中做如下配置,不做dex2oat
LOCAL_DEX_PREOPT := false