Don't fail the build if manifest_check cannot extract targetSdkVersion.

Instead, return "any" SDK version 10000, which will cause dexpreopt to
not add any compatibility libraries to class loader context. This is as
good guess as any, and the build system already uses "any" version if
there is not manifest or APK from which to extract targetSdkVersion.

This fixes broken build on cf_x86_auto-userdebug.

Bug: 132357300
Bug: 183943146
Test: lunch cf_x86_auto-userdebug \
  && m out/target/product/vsoc_x86/obj/APPS/playback_intermediates/dexpreopt.zip
Change-Id: I5ee75639ece716c3a9800ddea346fe7c73da7c3a
This commit is contained in:
Ulya Trafimovich 2021-03-29 14:06:58 +01:00 committed by Ulyana Trafimovich
parent cb745601b9
commit 9f12df9abb
1 changed files with 6 additions and 1 deletions

View File

@ -289,7 +289,12 @@ def main():
f.write("%s\n" % errmsg)
if args.extract_target_sdk_version:
print(extract_target_sdk_version(manifest, is_apk))
try:
print(extract_target_sdk_version(manifest, is_apk))
except:
# Failed; don't crash, return "any" SDK version. This will result in
# dexpreopt not adding any compatibility libraries.
print(10000)
if args.output:
# XML output is supposed to be written only when this script is invoked