I've asked this question before. After checking out logcat, it seems that the OS is looking for the odex files. I've checked the odex files of other system apps on my ROM, and it turns out they're ELF files.

For the ones asking, these are bytecode files produced by ART (dex2oat, I'm not sure).

I've observed that these files get generated on boot (Android is Starting: Optimizing App XXX of XXX).

For some reason, my phone's ROM doesn't run the optimization part. Instead, the oat files are already pre-generated and stored on the system partition. As a result, the apps that I want to pre-install don't get the oat treatment and crashes when I launch them (ClassNotFoundException since the oat files don't exist.)

How do I manually run the app optimizer? If it comes down to using the command line, how do I use dex2oat without root access/on a Linux PC?



You must log in to answer this question.

Browse other questions tagged .