OSDN Git Service

Merge "PackageManager: Don't fail app installs if dexopt fails." into nyc-dev
authorNarayan Kamath <narayan@google.com>
Mon, 20 Jun 2016 15:19:29 +0000 (15:19 +0000)
committerAndroid (Google) Code Review <android-gerrit@google.com>
Mon, 20 Jun 2016 15:19:31 +0000 (15:19 +0000)
services/core/java/com/android/server/pm/PackageManagerService.java

index ada0a6b..c8307d8 100644 (file)
@@ -15132,16 +15132,13 @@ public class PackageManagerService extends IPackageManager.Stub {
             }
             Trace.traceBegin(TRACE_TAG_PACKAGE_MANAGER, "dexopt");
             // Do not run PackageDexOptimizer through the local performDexOpt
-            // method because `pkg` is not in `mPackages` yet.
-            int result = mPackageDexOptimizer.performDexOpt(pkg, pkg.usesLibraryFiles,
+            // method because `pkg` may not be in `mPackages` yet.
+            //
+            // Also, don't fail application installs if the dexopt step fails.
+            mPackageDexOptimizer.performDexOpt(pkg, pkg.usesLibraryFiles,
                     null /* instructionSets */, false /* checkProfiles */,
                     getCompilerFilterForReason(REASON_INSTALL));
             Trace.traceEnd(TRACE_TAG_PACKAGE_MANAGER);
-            if (result == PackageDexOptimizer.DEX_OPT_FAILED) {
-                String msg = "Extracting package failed for " + pkgName;
-                res.setError(INSTALL_FAILED_DEXOPT, msg);
-                return;
-            }
 
             // Notify BackgroundDexOptService that the package has been changed.
             // If this is an update of a package which used to fail to compile,