app在userdebug版本上编译可adb install但user版本上失败问题解决
1. User版本编译的apk安装失败
Failure [INSTALL_FAILED_INVALID_APK:Package couldn't be installed in /data/app/xxx-1: Package /data/app/xxx-1/base.apkcode is missing]
用userdebug版本编译出来的安装在/data/app目录下。
2. userdebug版本编译
Oat文件夹下的odex文件
3. user版本编译
Oat文件夹下的odex文件,
InfoService.odex和userdebug的大小一样,但user版本编译的apk更小,这是因为user版本在编译的时候会对apk优化
4. 解决方法
InfoService的Android.mk增加LOCAL_DEX_PREOPT := false即可。
这个变量设置为false可以使整个系统使用提前优化的时候,某个app不使用提前优化。在Android.mk中给该变量赋值为false,则编译生成的文件没有oat文件,也就意味着没有被提前优化。