diff options
author | Jeff Sharkey <jsharkey@android.com> | 2014-07-15 20:18:34 -0700 |
---|---|---|
committer | Jeff Sharkey <jsharkey@android.com> | 2014-07-15 20:18:39 -0700 |
commit | 78a130144bdd047665f00782c481d31edb3e5fb7 (patch) | |
tree | ef9e2bc4e6e7e962cd6a5dbb80ae7c6e1ab17e98 /core/java/android/content | |
parent | da96e137bcc8191c584ada7b5de31eaae92f244f (diff) | |
download | frameworks_base-78a130144bdd047665f00782c481d31edb3e5fb7.zip frameworks_base-78a130144bdd047665f00782c481d31edb3e5fb7.tar.gz frameworks_base-78a130144bdd047665f00782c481d31edb3e5fb7.tar.bz2 |
Mark resource-only splits as hasCode=false.
PackageManagerService now skips dexopt for split APKs that don't
declare they have code. Also surface more detailed error messages
in logs.
Bug: 14975160
Change-Id: Ie6078dba724815020cee59b7fc52317e88ca097a
Diffstat (limited to 'core/java/android/content')
-rw-r--r-- | core/java/android/content/pm/PackageParser.java | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/core/java/android/content/pm/PackageParser.java b/core/java/android/content/pm/PackageParser.java index d41cca6..43c2b15 100644 --- a/core/java/android/content/pm/PackageParser.java +++ b/core/java/android/content/pm/PackageParser.java @@ -846,7 +846,7 @@ public class PackageParser { throw e; } catch (Exception e) { throw new PackageParserException(INSTALL_PARSE_FAILED_UNEXPECTED_EXCEPTION, - "Unable to read AndroidManifest.xml of " + apkPath); + "Failed to read manifest from " + apkPath, e); } finally { IoUtils.closeQuietly(parser); IoUtils.closeQuietly(assets); @@ -895,7 +895,7 @@ public class PackageParser { throw e; } catch (Exception e) { throw new PackageParserException(INSTALL_PARSE_FAILED_UNEXPECTED_EXCEPTION, - "Unable to read AndroidManifest.xml of " + apkPath); + "Failed to read manifest from " + apkPath, e); } finally { IoUtils.closeQuietly(parser); IoUtils.closeQuietly(assets); @@ -910,9 +910,13 @@ public class PackageParser { * omitted here. */ private Package parseSplitApk(Package pkg, Resources res, XmlResourceParser parser, int flags, - int splitIndex, String[] outError) throws XmlPullParserException, IOException { + int splitIndex, String[] outError) throws XmlPullParserException, IOException, + PackageParserException { AttributeSet attrs = parser; + // We parsed manifest tag earlier; just skip past it + parsePackageSplitNames(parser, attrs, flags); + mParseInstrumentationArgs = null; mParseActivityArgs = null; mParseServiceArgs = null; |