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
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?