Add check to ensure DexSplitter does not cause runtime errors
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}
Showing
Please register or sign in to comment