Failure to move .dex in eng builds is not fatal
When moving between program locations or application names, the .dex file is moved by installd. However, in engineering builds, the applications are run through dexopt on-demand. If the .dex file fails to move, we can ignore it because it's most likely because the .dex file does not exist yet. Change-Id: Id5c4dbfa33f19c976acd9f184ccd637752326629
This commit is contained in:
@@ -5867,8 +5867,17 @@ class PackageManagerService extends IPackageManager.Stub {
|
||||
if ((newPackage.applicationInfo.flags&ApplicationInfo.FLAG_HAS_CODE) != 0) {
|
||||
retCode = mInstaller.movedex(newPackage.mScanPath, newPackage.mPath);
|
||||
if (retCode != 0) {
|
||||
Slog.e(TAG, "Couldn't rename dex file: " + newPackage.mPath);
|
||||
return PackageManager.INSTALL_FAILED_INSUFFICIENT_STORAGE;
|
||||
if (mNoDexOpt) {
|
||||
/*
|
||||
* If we're in an engineering build, programs are lazily run
|
||||
* through dexopt. If the .dex file doesn't exist yet, it
|
||||
* will be created when the program is run next.
|
||||
*/
|
||||
Slog.i(TAG, "dex file doesn't exist, skipping move: " + newPackage.mPath);
|
||||
} else {
|
||||
Slog.e(TAG, "Couldn't rename dex file: " + newPackage.mPath);
|
||||
return PackageManager.INSTALL_FAILED_INSUFFICIENT_STORAGE;
|
||||
}
|
||||
}
|
||||
}
|
||||
return PackageManager.INSTALL_SUCCEEDED;
|
||||
|
||||
Reference in New Issue
Block a user