-
Clark DuVall authored
If an interface has only one implementer, R8 will merge the interface with the implementer. This causes problems if DexSplitter moves this class into a DFM, as the parent dex may have a reference to the interface, which is now a reference to the implementation in the DFM. This will cause a LinkageError at runtime, since the parent ClassLoader will try to load the reference to a class found in the child ClassLoader. I timed the proguard step for monochrome_bundle on my machine locally, the whole thing takes about 100s while _VerifySplitDexFiles takes about 3s. The verify step will only be run for bundles with isolated splits enabled which use the chrome module (monochrome/trichrome chrome bundles). Bug: 1154065 Change-Id: I453f10354ca20f355c8a946ed611a9ff186ab50f Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2567476 Commit-Queue: Clark DuVall <cduvall@chromium.org> Reviewed-by:
Andrew Grieve <agrieve@chromium.org> Cr-Commit-Position: refs/heads/master@{#832657}
a268c521