Part of #10788
Problem
TrimmableTypeMapTypeManager does not override GetStaticMethodFallbackTypesCore(). The legacy ManagedTypeManager overrides this to support Java 8+ default interface methods that are desugared by D8/R8:
// ManagedTypeManager.cs:155-166protectedoverrideIReadOnlyList<string>?GetStaticMethodFallbackTypesCore(stringjniSimpleReference){intslash=jniSimpleReference.LastIndexOf('/');vardesugarType=slash>0?$"{jniSimpleReference.Substring(0,slash+1)}Desugar{jniSimpleReference.Substring(slash+1)}":$"Desugar{jniSimpleReference}";returnnew[]{$"{desugarType}$_CC",$"{jniSimpleReference}$-CC",};}Without this, calls to desugared default interface methods will fail with NoSuchMethodError at runtime when using the trimmable type map.
Fix
Add the same override to TrimmableTypeMapTypeManager. This is a 1-line method copy.
Impact
Any app using Java libraries with default interface methods (Java 8+ feature, very common in modern Android libraries like AndroidX) could be affected.
Part of #10788
Problem
TrimmableTypeMapTypeManagerdoes not overrideGetStaticMethodFallbackTypesCore(). The legacyManagedTypeManageroverrides this to support Java 8+ default interface methods that are desugared by D8/R8:Without this, calls to desugared default interface methods will fail with
NoSuchMethodErrorat runtime when using the trimmable type map.Fix
Add the same override to
TrimmableTypeMapTypeManager. This is a 1-line method copy.Impact
Any app using Java libraries with default interface methods (Java 8+ feature, very common in modern Android libraries like AndroidX) could be affected.