I have been doing debugging on Android using my Nexus 4, however I recently encountered this error here. After doing some research on this error, it seems to be an issue wit
Here's something not covered by the existing answers. This was happening to me on emulator. If I reset user data, I get INSTALL_FAILED_DEXOPT the first time, but INSTALL_FAILED_UID_CHANGED after that. I found that rm -r /data/data/com.foo.bar is enough to reset to the first state.
The actual culprit in my case is a java method name that caused dexopt to fail. Pay very close attention to what's in logcat. Here's what gave it away:
I/PackageManager( 1275): Running dexopt on: com.foo.bar
E/dalvikvm( 2857): Invalid name: '__jni_setLocation'
E/dalvikvm( 2857): Trouble with item 14787 @ offset 0x43b68
E/dalvikvm( 2857): Cross-item verify of section type 0005 failed
E/dalvikvm( 2857): ERROR: Byte swap + verify failed
E/dalvikvm( 2857): Optimization failed
W/installd( 941): DexInv: --- END '/data/app/com.foo.bar-1.apk' --- status=0xff00, process failed
E/installd( 941): dexopt in='/data/app/com.foo.bar-1.apk' out='/data/dalvik-cache/data@app@com.foo.bar-1.apk@classes.dex' res=65280
W/PackageManager( 1275): Package couldn't be installed in /data/app/com.foo.bar-1.apk
I can't tell you why dexopt doesn't like some method names, but that was the problem.
Sometimes you have to also uninstall the data folders. For me, I had a package in userspace of com.kikin.cts
, and also a folder directory in /data/data/com.kikin.cts
. Kept getting INSTALL_FAILED_UID_CHANGED
, but after removing the data folder, the error went away.