Merge "Add workaround for handling versionMajor with string type" into main
diff --git a/core/java/android/content/pm/parsing/ApkLiteParseUtils.java b/core/java/android/content/pm/parsing/ApkLiteParseUtils.java
index 8ba556d..7254203 100644
--- a/core/java/android/content/pm/parsing/ApkLiteParseUtils.java
+++ b/core/java/android/content/pm/parsing/ApkLiteParseUtils.java
@@ -44,6 +44,7 @@
import com.android.internal.pm.pkg.component.flags.Flags;
import com.android.internal.util.ArrayUtils;
+import com.android.internal.util.XmlUtils;
import libcore.io.IoUtils;
import libcore.util.HexEncoding;
@@ -543,8 +544,13 @@
}
String usesSdkLibName = parser.getAttributeValue(
ANDROID_RES_NAMESPACE, "name");
- long usesSdkLibVersionMajor = parser.getAttributeIntValue(
- ANDROID_RES_NAMESPACE, "versionMajor", -1);
+ // TODO(b/379219371): Due to a bug in bundletool, some apps can use
+ // versionMajor as string. Until it is resolved, we are adding a
+ // workaround here.
+ String usesSdkLibVersionMajorString = parser.getAttributeValue(
+ ANDROID_RES_NAMESPACE, "versionMajor");
+ long usesSdkLibVersionMajor = XmlUtils.convertValueToInt(
+ usesSdkLibVersionMajorString, -1);
String usesSdkCertDigest = parser.getAttributeValue(
ANDROID_RES_NAMESPACE, "certDigest");