现在的位置: 首页 > 综合 > 正文

系统apk安装出现 does not include classes.dex

2013年06月05日 ⁄ 综合 ⁄ 共 895字 ⁄ 字号 评论关闭

最近在了解packagemanagerservice,想了解下系统应用安装的流程,但是当我安装系统launcher时候出现INSTALL_FAILED_DEXOPT,查看log里面,打出来的是:

W/Watchdog(  285): Debugger connected: Watchdog is *not* killing the system process

W/dalvikvm(  951): DexOptZ: zip archive '/data/app/com.android.launcher-1.apk' does not include classes.dex

W/installd(   40): DexInv: --- END '/data/app/com.android.launcher-1.apk' --- status=0xff00, process failed

E/installd(   40): dexopt failed on '/data/dalvik-cache/data@app@com.android.launcher-1.apk@classes.dex' res = 65280

这个是因为安装的apk里面没有classes.dex文件,所以安装失败了,android4.2编译出来的system/app目录,我们可以看到很多的文件,后缀不一样


这些apk是不可以直接安装的,安装的时候会出现上面的问题,这里的odex文件就相当于classes.dex文件


这样做可以使其厂商保证一定的反盗版,因为没有没有dex文件的apk是无法正常安装的,而厂商直接将odex和不完整的apk文件放到手机rom固化到/system/app中可以让一般用户无法正常导出使用。’其实含有dex的文件在generic/obj/APPS下面的xxx_intermediates文件夹下,下面的xx.apk.unaligned和xxx.apk.unsingned是包含dex是可以安装的。其中以unaligned结尾的是含有签名的,而unsingned是没有签名的,安装的时候会出现INSTALL_PARSE_FAILED_NO_CERTIFICATES这个问题

抱歉!评论已关闭.