You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
[Documentation] Proguard Rules for firebase products and other plugins as needed #37839
This is kind of confusing. And the warnings during minification/obfuscation of release build are also very scary as to the stability of the release builds.
Proposal
Readme of the official plugins should come with their release build instructions, that include precise guidance of if there are additional configuration like proguard needed, and exactly what those rules are, and should be updated if those rules change.
Reacted by Raveesh Agarwal, Rafael Farias, Leonardo Deleon, Diego Cattarinich Clavel, Julio Henrique Bitencourt, Mike Hughes, Allan, Peter Scully, Paulina Szklarska and Ali Kurnaz
changed the title [-][Doccumentation] Proguard Rules for firebase products[/-][+][Doccumentation] Proguard Rules for firebase products and other plugins as needed[/+]on Aug 8, 2019
changed the title [-][Doccumentation] Proguard Rules for firebase products and other plugins as needed[/-][+][Documentation] Proguard Rules for firebase products and other plugins as needed[/+]on Aug 8, 2019
Is there somewhere where we can find those rules ? I've added firebase_auth (but was already using analytics, messaging, in-app) and my app doesn't compile in release mode anymore with some huge logs:
Note: duplicate definition of library class [android.annotation.TargetApi]
Note: duplicate definition of library class [android.annotation.SuppressLint]
Reading library jar [/Users/jaumard/Library/Android/sdk/build-tools/28.0.3/core-lambda-stubs.jar]
Reading library jar [/Users/jaumard/Library/Android/sdk/platforms/android-28/optional/org.apache.http.legacy.jar]
Reading library jar [/Users/jaumard/Library/Android/sdk/platforms/android-28/optional/android.test.mock.jar]
Reading library jar [/Users/jaumard/Library/Android/sdk/platforms/android-28/optional/android.test.base.jar]
Reading library jar [/Users/jaumard/Library/Android/sdk/platforms/android-28/optional/android.test.runner.jar]
Initializing...
Note: the configuration refers to the unknown class 'sun.misc.Unsafe'
Note: the configuration refers to the unknown class 'com.google.android.gms.common.api.internal.BasePendingResult$ReleasableResultGuardian'
Note: there were 2 duplicate class definitions.
(http://proguard.sourceforge.net/manual/troubleshooting.html#duplicateclass)
Warning: com.bbpos.bbdevice.ota.a: can't find referenced class com.bbpos.emvswipe.EmvSwipeController
Warning: com.bbpos.bbdevice.ota.a: can't find referenced class com.bbpos.emvswipe.EmvSwipeController$ConnectionMode
Warning: com.bbpos.bbdevice.ota.a: can't find referenced class com.bbpos.wisepad.WisePadController
Warning: com.bbpos.bbdevice.ota.a: can't find referenced class com.bbpos.wisepad.WisePadController$ConnectionMode
Warning: com.bbpos.bbdevice.ota.a: can't find referenced class com.bbpos.emvswipe.EmvSwipeController$ConnectionMode
Warning: com.bbpos.bbdevice.ota.a: can't find referenced class com.bbpos.emvswipe.EmvSwipeController$ConnectionMode
Warning: com.bbpos.bbdevice.ota.a: can't find referenced class com.bbpos.wisepad.WisePadController$ConnectionMode
Warning: com.bbpos.bbdevice.ota.a: can't find referenced class com.bbpos.wisepad.WisePadController$ConnectionMode
Warning: com.bbpos.bbdevice.ota.a: can't find referenced class com.bbpos.wisepad.WisePadController$ConnectionMode
Warning: com.bbpos.bbdevice.ota.a: can't find referenced class com.bbpos.wisepad.WisePadController$ConnectionMode
Warning: com.bbpos.bbdevice.ota.a: can't find referenced class com.bbpos.wisepad.WisePadController$ConnectionMode
Warning: com.bbpos.bbdevice.ota.a: can't find referenced class com.bbpos.emvswipe.EmvSwipeController
Warning: com.bbpos.bbdevice.ota.a: can't find referenced class com.bbpos.emvswipe.EmvSwipeController
Warning: com.bbpos.bbdevice.ota.a: can't find referenced class com.bbpos.emvswipe.EmvSwipeController
Warning: com.bbpos.bbdevice.ota.a: can't find referenced class com.bbpos.emvswipe.EmvSwipeController
Warning: com.bbpos.bbdevice.ota.a: can't find referenced class com.bbpos.emvswipe.EmvSwipeController
Warning: com.bbpos.bbdevice.ota.a: can't find referenced class com.bbpos.emvswipe.EmvSwipeController
Warning: com.bbpos.bbdevice.ota.a: can't find referenced class com.bbpos.wisepad.WisePadController
Warning: com.bbpos.bbdevice.ota.a: can't find referenced class com.bbpos.wisepad.WisePadController
Warning: com.bbpos.bbdevice.ota.a: can't find referenced class com.bbpos.wisepad.WisePadController
Warning: com.bbpos.bbdevice.ota.a: can't find referenced class com.bbpos.wisepad.WisePadController
Warning: com.bbpos.bbdevice.ota.a: can't find referenced class com.bbpos.emvswipe.EmvSwipeController
Warning: com.bbpos.bbdevice.ota.a: can't find referenced class com.bbpos.wisepad.WisePadController
Warning: com.bbpos.bbdevice.ota.a: can't find referenced class com.bbpos.wisepad.WisePadController
Warning: com.bbpos.bbdevice.ota.a$2: can't find referenced class com.bbpos.wisepad.WisePadController
Warning: com.bbpos.bbdevice.ota.a$2: can't find referenced class com.bbpos.wisepad.WisePadController
Warning: com.bbpos.bbdevice.ota.a$3: can't find referenced class com.bbpos.wisepad.WisePadController
Warning: com.bbpos.bbdevice.ota.a$3: can't find referenced class com.bbpos.wisepad.WisePadController
Warning: com.bbpos.bbdevice.ota.a$5: can't find referenced class com.bbpos.wisepad.WisePadController
Warning: com.bbpos.bbdevice.ota.a$5: can't find referenced class com.bbpos.wisepad.WisePadController
Warning: com.bbpos.bbdevice.ota.a$6: can't find referenced class com.bbpos.wisepad.WisePadController
Warning: com.bbpos.bbdevice.ota.a$6: can't find referenced class com.bbpos.wisepad.WisePadController
Warning: com.bbpos.bbdevice001.aaa012zz: can't find referenced class android.app.CustServiceManager
Warning: com.bbpos.bbdevice001.aaa012zz: can't find referenced class android.app.CustServiceManager
Warning: com.bbpos.bbdevice001.aaa012zz: can't find referenced class android.app.CustServiceManager
Warning: com.bbpos.bbdevice001.aaa012zz: can't find referenced class android.app.CustServiceManager
Warning: com.dspread.xpos.ai: can't find referenced class gnu.io.CommPortIdentifier
Warning: com.dspread.xpos.ai: can't find referenced class gnu.io.SerialPort
Warning: com.dspread.xpos.ai: can't find referenced class gnu.io.CommPortIdentifier
Warning: com.dspread.xpos.ai: can't find referenced class gnu.io.CommPortIdentifier
Warning: com.dspread.xpos.ai: can't find referenced class gnu.io.CommPortIdentifier
Warning: com.dspread.xpos.ai: can't find referenced class gnu.io.CommPortIdentifier
Warning: com.dspread.xpos.ai: can't find referenced class gnu.io.SerialPort
Warning: com.dspread.xpos.ai: can't find referenced class gnu.io.SerialPort
Warning: com.dspread.xpos.ai: can't find referenced class gnu.io.SerialPort
Warning: com.dspread.xpos.ai: can't find referenced class gnu.io.SerialPort
Warning: com.dspread.xpos.ai: can't find referenced class gnu.io.SerialPort
Warning: com.dspread.xpos.ai: can't find referenced class gnu.io.CommPortIdentifier
Warning: com.dspread.xpos.ai: can't find referenced class gnu.io.SerialPort
Warning: com.dspread.xpos.al: can't find referenced class Decoder.BASE64Decoder
Warning: com.dspread.xpos.al: can't find referenced class org.bouncycastle.jce.provider.BouncyCastleProvider
Warning: com.dspread.xpos.al: can't find referenced class Decoder.BASE64Decoder
Warning: com.dspread.xpos.al: can't find referenced class Decoder.BASE64Decoder
Warning: com.dspread.xpos.al: can't find referenced class org.bouncycastle.jce.provider.BouncyCastleProvider
Warning: com.dspread.xpos.al: can't find referenced class Decoder.BASE64Decoder
Warning: com.dspread.xpos.al: can't find referenced class Decoder.BASE64Decoder
Warning: com.dspread.xpos.x: can't find referenced class org.bouncycastle.jce.provider.BouncyCastleProvider
Warning: com.dspread.xpos.x: can't find referenced class org.bouncycastle.jce.provider.BouncyCastleProvider
Note: com.crashlytics.android.core.CrashlyticsController: can't find dynamically referenced class com.google.firebase.crash.FirebaseCrash
Note: com.google.android.gms.common.util.WorkSourceUtil: can't find dynamically referenced class android.os.WorkSource$WorkChain
Note: com.google.android.gms.internal.clearcut.zzaw: can't find dynamically referenced class libcore.io.Memory
Note: com.google.android.gms.internal.clearcut.zzaw: can't find dynamically referenced class org.robolectric.Robolectric
Note: com.google.android.gms.internal.clearcut.zzbs: can't find dynamically referenced class com.google.protobuf.ExtensionRegistry
Note: com.google.android.gms.internal.clearcut.zzbt: can't find dynamically referenced class com.google.protobuf.Extension
Note: com.google.android.gms.internal.clearcut.zzbx: can't find dynamically referenced class com.google.protobuf.ExtensionSchemaFull
Note: com.google.android.gms.internal.clearcut.zzdd: can't find dynamically referenced class com.google.protobuf.DescriptorMessageInfoFactory
Note: com.google.android.gms.internal.clearcut.zzdl: can't find dynamically referenced class com.google.protobuf.MapFieldSchemaFull
Note: com.google.android.gms.internal.clearcut.zzdy: can't find dynamically referenced class com.google.protobuf.NewInstanceSchemaFull
Note: com.google.android.gms.internal.clearcut.zzeh: can't find dynamically referenced class com.google.protobuf.GeneratedMessage
Note: com.google.android.gms.internal.clearcut.zzeh: can't find dynamically referenced class com.google.protobuf.UnknownFieldSetSchema
Note: com.google.android.gms.internal.firebase_auth.zzge: can't find dynamically referenced class libcore.io.Memory
Note: com.google.android.gms.internal.firebase_auth.zzge: can't find dynamically referenced class org.robolectric.Robolectric
Note: com.google.android.gms.internal.firebase_auth.zzhd: can't find dynamically referenced class com.google.protobuf.ExtensionRegistry
Note: com.google.android.gms.internal.firebase_auth.zzhf: can't find dynamically referenced class com.google.protobuf.Extension
Note: com.google.android.gms.internal.firebase_auth.zzhj: can't find dynamically referenced class com.google.protobuf.ExtensionSchemaFull
Note: com.google.android.gms.internal.firebase_auth.zzip: can't find dynamically referenced class com.google.protobuf.DescriptorMessageInfoFactory
Note: com.google.android.gms.internal.firebase_auth.zzix: can't find dynamically referenced class com.google.protobuf.MapFieldSchemaFull
Note: com.google.android.gms.internal.firebase_auth.zzjj: can't find dynamically referenced class com.google.protobuf.NewInstanceSchemaFull
Note: com.google.android.gms.internal.firebase_auth.zzju: can't find dynamically referenced class com.google.protobuf.GeneratedMessage
Note: com.google.android.gms.internal.firebase_auth.zzju: can't find dynamically referenced class com.google.protobuf.UnknownFieldSetSchema
Note: com.google.android.gms.internal.firebase_ml.zztk: can't find dynamically referenced class libcore.io.Memory
Note: com.google.android.gms.internal.firebase_ml.zztk: can't find dynamically referenced class org.robolectric.Robolectric
Note: com.google.android.gms.internal.firebase_ml.zzuh: can't find dynamically referenced class com.google.protobuf.ExtensionRegistry
Note: com.google.android.gms.internal.firebase_ml.zzuj: can't find dynamically referenced class com.google.protobuf.Extension
Note: com.google.android.gms.internal.firebase_ml.zzun: can't find dynamically referenced class com.google.protobuf.ExtensionSchemaFull
Note: com.google.android.gms.internal.firebase_ml.zzvv: can't find dynamically referenced class com.google.protobuf.DescriptorMessageInfoFactory
Note: com.google.android.gms.internal.firebase_ml.zzwd: can't find dynamically referenced class com.google.protobuf.MapFieldSchemaFull
Note: com.google.android.gms.internal.firebase_ml.zzwo: can't find dynamically referenced class com.google.protobuf.NewInstanceSchemaFull
Note: com.google.android.gms.internal.firebase_ml.zzww: can't find dynamically referenced class com.google.protobuf.GeneratedMessage
Note: com.google.android.gms.internal.firebase_ml.zzww: can't find dynamically referenced class com.google.protobuf.UnknownFieldSetSchema
Note: com.google.android.gms.internal.firebase_remote_config.zzfr: can't find dynamically referenced class libcore.io.Memory
Note: com.google.android.gms.internal.firebase_remote_config.zzfr: can't find dynamically referenced class org.robolectric.Robolectric
Note: com.google.android.gms.internal.firebase_remote_config.zzgu: can't find dynamically referenced class com.google.protobuf.ExtensionRegistry
Note: com.google.android.gms.internal.firebase_remote_config.zzgv: can't find dynamically referenced class com.google.protobuf.Extension
Note: com.google.android.gms.internal.firebase_remote_config.zzgz: can't find dynamically referenced class com.google.protobuf.ExtensionSchemaFull
Note: com.google.android.gms.internal.firebase_remote_config.zzid: can't find dynamically referenced class com.google.protobuf.DescriptorMessageInfoFactory
Note: com.google.android.gms.internal.firebase_remote_config.zzil: can't find dynamically referenced class com.google.protobuf.MapFieldSchemaFull
Note: com.google.android.gms.internal.firebase_remote_config.zziy: can't find dynamically referenced class com.google.protobuf.NewInstanceSchemaFull
Note: com.google.android.gms.internal.firebase_remote_config.zzjl: can't find dynamically referenced class com.google.protobuf.GeneratedMessage
Note: com.google.android.gms.internal.firebase_remote_config.zzjl: can't find dynamically referenced class com.google.protobuf.UnknownFieldSetSchema
Note: com.google.android.gms.internal.measurement.zzdi: can't find dynamically referenced class libcore.io.Memory
Note: com.google.android.gms.internal.measurement.zzdi: can't find dynamically referenced class org.robolectric.Robolectric
Note: com.google.android.gms.internal.measurement.zzej: can't find dynamically referenced class com.google.protobuf.ExtensionRegistry
Note: com.google.android.gms.internal.measurement.zzel: can't find dynamically referenced class com.google.protobuf.Extension
Note: com.google.android.gms.internal.measurement.zzep: can't find dynamically referenced class com.google.protobuf.ExtensionSchemaFull
Note: com.google.android.gms.internal.measurement.zzfv: can't find dynamically referenced class com.google.protobuf.DescriptorMessageInfoFactory
Note: com.google.android.gms.internal.measurement.zzgd: can't find dynamically referenced class com.google.protobuf.MapFieldSchemaFull
Note: com.google.android.gms.internal.measurement.zzgs: can't find dynamically referenced class com.google.protobuf.NewInstanceSchemaFull
Note: com.google.android.gms.internal.measurement.zzgz: can't find dynamically referenced class com.google.protobuf.GeneratedMessage
Note: com.google.android.gms.internal.measurement.zzgz: can't find dynamically referenced class com.google.protobuf.UnknownFieldSetSchema
Note: com.google.android.gms.internal.measurement.zzz: can't find dynamically referenced class android.os.SystemProperties
Note: com.google.android.gms.internal.vision.zzeg: can't find dynamically referenced class libcore.io.Memory
Note: com.google.android.gms.internal.vision.zzeg: can't find dynamically referenced class org.robolectric.Robolectric
Note: com.google.android.gms.internal.vision.zzfj: can't find dynamically referenced class com.google.protobuf.ExtensionRegistry
Note: com.google.android.gms.internal.vision.zzfk: can't find dynamically referenced class com.google.protobuf.Extension
Note: com.google.android.gms.internal.vision.zzfo: can't find dynamically referenced class com.google.protobuf.ExtensionSchemaFull
Note: com.google.android.gms.internal.vision.zzgu: can't find dynamically referenced class com.google.protobuf.DescriptorMessageInfoFactory
Note: com.google.android.gms.internal.vision.zzhc: can't find dynamically referenced class com.google.protobuf.MapFieldSchemaFull
Note: com.google.android.gms.internal.vision.zzhp: can't find dynamically referenced class com.google.protobuf.NewInstanceSchemaFull
Note: com.google.android.gms.internal.vision.zzhy: can't find dynamically referenced class com.google.protobuf.GeneratedMessage
Note: com.google.android.gms.internal.vision.zzhy: can't find dynamically referenced class com.google.protobuf.UnknownFieldSetSchema
Note: com.google.android.gms.measurement.internal.zzgp: can't find dynamically referenced class com.google.android.gms.tagmanager.TagManagerService
Note: com.google.android.gms.measurement.internal.zzs: can't find dynamically referenced class android.os.SystemProperties
Note: com.google.common.util.concurrent.MoreExecutors: can't find dynamically referenced class com.google.appengine.api.ThreadManager
Note: com.google.common.util.concurrent.MoreExecutors: can't find dynamically referenced class com.google.apphosting.api.ApiProxy
Note: com.google.gson.internal.UnsafeAllocator: can't find dynamically referenced class sun.misc.Unsafe
Note: com.google.gson.internal.reflect.UnsafeReflectionAccessor: can't find dynamically referenced class sun.misc.Unsafe
Note: com.google.protobuf.ExtensionRegistryFactory: can't find dynamically referenced class com.google.protobuf.ExtensionRegistry
Note: com.google.protobuf.ExtensionRegistryLite: can't find dynamically referenced class com.google.protobuf.Extension
Note: com.squareup.okhttp.internal.Platform: can't find dynamically referenced class com.android.org.conscrypt.SSLParametersImpl
Note: com.squareup.okhttp.internal.Platform: can't find dynamically referenced class org.apache.harmony.xnet.provider.jsse.SSLParametersImpl
Note: com.squareup.okhttp.internal.Platform: can't find dynamically referenced class sun.security.ssl.SSLContextImpl
Note: io.fabric.sdk.android.FabricKitsFinder: can't find dynamically referenced class com.google.android.gms.ads.AdView
Note: io.flutter.view.AccessibilityViewEmbedder$ReflectionAccessors: can't find dynamically referenced class android.util.LongArray
Note: io.grpc.Context$LazyStorage: can't find dynamically referenced class io.grpc.override.ContextStorageOverride
Note: io.grpc.ManagedChannelProvider$HardcodedClasses: can't find dynamically referenced class io.grpc.netty.NettyChannelProvider
Note: io.grpc.internal.JndiResourceResolverFactory: can't find dynamically referenced class javax.naming.directory.InitialDirContext
Note: io.grpc.internal.JndiResourceResolverFactory: can't find dynamically referenced class com.sun.jndi.dns.DnsContextFactory
Note: io.grpc.okhttp.internal.Platform: can't find dynamically referenced class org.conscrypt.OpenSSLProvider
Note: kotlin.internal.PlatformImplementationsKt: can't find dynamically referenced class kotlin.internal.jdk8.JDK8PlatformImplementations
Note: kotlin.internal.PlatformImplementationsKt: can't find dynamically referenced class kotlin.internal.JRE8PlatformImplementations
Note: kotlin.internal.PlatformImplementationsKt: can't find dynamically referenced class kotlin.internal.JRE7PlatformImplementations
Note: kotlin.jvm.internal.Reflection: can't find dynamically referenced class kotlin.reflect.jvm.internal.ReflectionFactoryImpl
Note: okhttp3.internal.platform.AndroidPlatform: can't find dynamically referenced class com.android.org.conscrypt.SSLParametersImpl
Note: okhttp3.internal.platform.AndroidPlatform: can't find dynamically referenced class org.apache.harmony.xnet.provider.jsse.SSLParametersImpl
Note: okhttp3.internal.platform.AndroidPlatform$CloseGuard: can't find dynamically referenced class dalvik.system.CloseGuard
Note: okhttp3.internal.platform.ConscryptPlatform: can't find dynamically referenced class org.conscrypt.Conscrypt
Note: okhttp3.internal.platform.Platform: can't find dynamically referenced class sun.security.ssl.SSLContextImpl
Note: the configuration refers to the unknown field 'com.google.android.gms.common.api.internal.BasePendingResult$ReleasableResultGuardian mResultGuardian' in class 'com.google.android.gms.common.api.internal.BasePendingResult'
Note: the configuration refers to the unknown method 'com.google.android.gms.measurement.AppMeasurement getInstance(android.content.Context,java.lang.String,java.lang.String)' in class 'com.google.android.gms.measurement.AppMeasurement'
Note: the configuration keeps the entry point 'com.baseflow.geolocator.tasks.LocationUpdatesUsingLocationServicesTask$2 { void onComplete(com.google.android.gms.tasks.Task); }', but not the descriptor class 'com.google.android.gms.tasks.Task'
Note: the configuration keeps the entry point 'com.google.android.datatransport.cct.CctBackendFactory { com.google.android.datatransport.runtime.backends.TransportBackend create(com.google.android.datatransport.runtime.backends.CreationContext); }', but not the descriptor class 'com.google.android.datatransport.runtime.backends.CreationContext'
Note: the configuration keeps the entry point 'com.google.android.gms.ads.identifier.AdvertisingIdClient { com.google.android.gms.internal.ads_identifier.zze zza(android.content.Context,com.google.android.gms.common.BlockingServiceConnection); }', but not the descriptor class 'com.google.android.gms.common.BlockingServiceConnection'
Note: the configuration keeps the entry point 'com.google.android.gms.common.api.internal.LifecycleCallback { com.google.android.gms.common.api.internal.LifecycleFragment getChimeraLifecycleFragmentImpl(com.google.android.gms.common.api.internal.LifecycleActivity); }', but not the descriptor class 'com.google.android.gms.common.api.internal.LifecycleActivity'
Note: the configuration keeps the entry point 'com.google.android.gms.flags.impl.FlagProviderImpl { void init(com.google.android.gms.dynamic.IObjectWrapper); }', but not the descriptor class 'com.google.android.gms.dynamic.IObjectWrapper'
Note: the configuration keeps the entry point 'com.google.android.gms.measurement.internal.AppMeasurementDynamiteService { void initialize(com.google.android.gms.dynamic.IObjectWrapper,com.google.android.gms.internal.measurement.zzx,long); }', but not the descriptor class 'com.google.android.gms.dynamic.IObjectWrapper'
Note: the configuration keeps the entry point 'com.google.android.gms.measurement.internal.AppMeasurementDynamiteService { void initialize(com.google.android.gms.dynamic.IObjectWrapper,com.google.android.gms.internal.measurement.zzx,long); }', but not the descriptor class 'com.google.android.gms.internal.measurement.zzx'
Note: the configuration keeps the entry point 'com.google.android.gms.measurement.internal.AppMeasurementDynamiteService { void setUserProperty(java.lang.String,java.lang.String,com.google.android.gms.dynamic.IObjectWrapper,boolean,long); }', but not the descriptor class 'com.google.android.gms.dynamic.IObjectWrapper'
Note: the configuration keeps the entry point 'com.google.android.gms.measurement.internal.AppMeasurementDynamiteService { void setCurrentScreen(com.google.android.gms.dynamic.IObjectWrapper,java.lang.String,java.lang.String,long); }', but not the descriptor class 'com.google.android.gms.dynamic.IObjectWrapper'
Note: the configuration keeps the entry point 'com.google.android.gms.measurement.internal.AppMeasurementDynamiteService { void getMaxUserProperties(java.lang.String,com.google.android.gms.internal.measurement.zzp); }', but not the descriptor class 'com.google.android.gms.internal.measurement.zzp'
Note: the configuration keeps the entry point 'com.google.android.gms.measurement.internal.AppMeasurementDynamiteService { void getCurrentScreenName(com.google.android.gms.internal.measurement.zzp); }', but not the descriptor class 'com.google.android.gms.internal.measurement.zzp'
Note: the configuration keeps the entry point 'com.google.android.gms.measurement.internal.AppMeasurementDynamiteService { void getCurrentScreenClass(com.google.android.gms.internal.measurement.zzp); }', but not the descriptor class 'com.google.android.gms.internal.measurement.zzp'
Note: the configuration keeps the entry point 'com.google.android.gms.measurement.internal.AppMeasurementDynamiteService { void getCachedAppInstanceId(com.google.android.gms.internal.measurement.zzp); }', but not the descriptor class 'com.google.android.gms.internal.measurement.zzp'
Note: the configuration keeps the entry point 'com.google.android.gms.measurement.internal.AppMeasurementDynamiteService { void getAppInstanceId(com.google.android.gms.internal.measurement.zzp); }', but not the descriptor class 'com.google.android.gms.internal.measurement.zzp'
Note: the configuration keeps the entry point 'com.google.android.gms.measurement.internal.AppMeasurementDynamiteService { void getDeepLink(com.google.android.gms.internal.measurement.zzp); }', but not the descriptor class 'com.google.android.gms.internal.measurement.zzp'
Note: the configuration keeps the entry point 'com.google.android.gms.measurement.internal.AppMeasurementDynamiteService { void getGmpAppId(com.google.android.gms.internal.measurement.zzp); }', but not the descriptor class 'com.google.android.gms.internal.measurement.zzp'
Note: the configuration keeps the entry point 'com.google.android.gms.measurement.internal.AppMeasurementDynamiteService { void generateEventId(com.google.android.gms.internal.measurement.zzp); }', but not the descriptor class 'com.google.android.gms.internal.measurement.zzp'
Note: the configuration keeps the entry point 'com.google.android.gms.measurement.internal.AppMeasurementDynamiteService { void logEventAndBundle(java.lang.String,java.lang.String,android.os.Bundle,com.google.android.gms.internal.measurement.zzp,long); }', but not the descriptor class 'com.google.android.gms.internal.measurement.zzp'
Note: the configuration keeps the entry point 'com.google.android.gms.measurement.internal.AppMeasurementDynamiteService { void onActivityStarted(com.google.android.gms.dynamic.IObjectWrapper,long); }', but not the descriptor class 'com.google.android.gms.dynamic.IObjectWrapper'
Note: the configuration keeps the entry point 'com.google.android.gms.measurement.internal.AppMeasurementDynamiteService { void onActivityStopped(com.google.android.gms.dynamic.IObjectWrapper,long); }', but not the descriptor class 'com.google.android.gms.dynamic.IObjectWrapper'
Note: the configuration keeps the entry point 'com.google.android.gms.measurement.internal.AppMeasurementDynamiteService { void onActivityCreated(com.google.android.gms.dynamic.IObjectWrapper,android.os.Bundle,long); }', but not the descriptor class 'com.google.android.gms.dynamic.IObjectWrapper'
Note: the configuration keeps the entry point 'com.google.android.gms.measurement.internal.AppMeasurementDynamiteService { void onActivityDestroyed(com.google.android.gms.dynamic.IObjectWrapper,long); }', but not the descriptor class 'com.google.android.gms.dynamic.IObjectWrapper'
Note: the configuration keeps the entry point 'com.google.android.gms.measurement.internal.AppMeasurementDynamiteService { void onActivityPaused(com.google.android.gms.dynamic.IObjectWrapper,long); }', but not the descriptor class 'com.google.android.gms.dynamic.IObjectWrapper'
Note: the configuration keeps the entry point 'com.google.android.gms.measurement.internal.AppMeasurementDynamiteService { void onActivityResumed(com.google.android.gms.dynamic.IObjectWrapper,long); }', but not the descriptor class 'com.google.android.gms.dynamic.IObjectWrapper'
Note: the configuration keeps the entry point 'com.google.android.gms.measurement.internal.AppMeasurementDynamiteService { void onActivitySaveInstanceState(com.google.android.gms.dynamic.IObjectWrapper,com.google.android.gms.internal.measurement.zzp,long); }', but not the descriptor class 'com.google.android.gms.dynamic.IObjectWrapper'
Note: the configuration keeps the entry point 'com.google.android.gms.measurement.internal.AppMeasurementDynamiteService { void onActivitySaveInstanceState(com.google.android.gms.dynamic.IObjectWrapper,com.google.android.gms.internal.measurement.zzp,long); }', but not the descriptor class 'com.google.android.gms.internal.measurement.zzp'
Note: the configuration keeps the entry point 'com.google.android.gms.measurement.internal.AppMeasurementDynamiteService { void performAction(android.os.Bundle,com.google.android.gms.internal.measurement.zzp,long); }', but not the descriptor class 'com.google.android.gms.internal.measurement.zzp'
Note: the configuration keeps the entry point 'com.google.android.gms.measurement.internal.AppMeasurementDynamiteService { void getUserProperties(java.lang.String,java.lang.String,boolean,com.google.android.gms.internal.measurement.zzp); }', but not the descriptor class 'com.google.android.gms.internal.measurement.zzp'
Note: the configuration keeps the entry point 'com.google.android.gms.measurement.internal.AppMeasurementDynamiteService { void logHealthData(int,java.lang.String,com.google.android.gms.dynamic.IObjectWrapper,com.google.android.gms.dynamic.IObjectWrapper,com.google.android.gms.dynamic.IObjectWrapper); }', but not the descriptor class 'com.google.android.gms.dynamic.IObjectWrapper'
Note: the configuration keeps the entry point 'com.google.android.gms.measurement.internal.AppMeasurementDynamiteService { void logHealthData(int,java.lang.String,com.google.android.gms.dynamic.IObjectWrapper,com.google.android.gms.dynamic.IObjectWrapper,com.google.android.gms.dynamic.IObjectWrapper); }', but not the descriptor class 'com.google.android.gms.dynamic.IObjectWrapper'
Note: the configuration keeps the entry point 'com.google.android.gms.measurement.internal.AppMeasurementDynamiteService { void logHealthData(int,java.lang.String,com.google.android.gms.dynamic.IObjectWrapper,com.google.android.gms.dynamic.IObjectWrapper,com.google.android.gms.dynamic.IObjectWrapper); }', but not the descriptor class 'com.google.android.gms.dynamic.IObjectWrapper'
Note: the configuration keeps the entry point 'com.google.android.gms.measurement.internal.AppMeasurementDynamiteService { void setEventInterceptor(com.google.android.gms.internal.measurement.zzq); }', but not the descriptor class 'com.google.android.gms.internal.measurement.zzq'
Note: the configuration keeps the entry point 'com.google.android.gms.measurement.internal.AppMeasurementDynamiteService { void registerOnMeasurementEventListener(com.google.android.gms.internal.measurement.zzq); }', but not the descriptor class 'com.google.android.gms.internal.measurement.zzq'
Note: the configuration keeps the entry point 'com.google.android.gms.measurement.internal.AppMeasurementDynamiteService { void unregisterOnMeasurementEventListener(com.google.android.gms.internal.measurement.zzq); }', but not the descriptor class 'com.google.android.gms.internal.measurement.zzq'
Note: the configuration keeps the entry point 'com.google.android.gms.measurement.internal.AppMeasurementDynamiteService { void setInstanceIdProvider(com.google.android.gms.internal.measurement.zzv); }', but not the descriptor class 'com.google.android.gms.internal.measurement.zzv'
Note: the configuration keeps the entry point 'com.google.android.gms.measurement.internal.AppMeasurementDynamiteService { void getConditionalUserProperties(java.lang.String,java.lang.String,com.google.android.gms.internal.measurement.zzp); }', but not the descriptor class 'com.google.android.gms.internal.measurement.zzp'
Note: the configuration keeps the entry point 'com.google.android.gms.measurement.internal.AppMeasurementDynamiteService { void getTestFlag(com.google.android.gms.internal.measurement.zzp,int); }', but not the descriptor class 'com.google.android.gms.internal.measurement.zzp'
Note: the configuration keeps the entry point 'com.google.android.gms.measurement.internal.AppMeasurementDynamiteService { void isDataCollectionEnabled(com.google.android.gms.internal.measurement.zzp); }', but not the descriptor class 'com.google.android.gms.internal.measurement.zzp'
Note: the configuration keeps the entry point 'com.google.android.gms.vision.clearcut.DynamiteClearcutLogger { void zza(int,com.google.android.gms.internal.vision.zzdu); }', but not the descriptor class 'com.google.android.gms.internal.vision.zzdu'
Note: the configuration keeps the entry point 'com.google.android.gms.vision.clearcut.LoggingConnectionCallbacks { void onConnectionFailed(com.google.android.gms.common.ConnectionResult); }', but not the descriptor class 'com.google.android.gms.common.ConnectionResult'
Note: the configuration keeps the entry point 'com.google.android.gms.vision.clearcut.VisionClearcutLogger { void zzb(int,com.google.android.gms.internal.vision.zzdu); }', but not the descriptor class 'com.google.android.gms.internal.vision.zzdu'
Note: the configuration keeps the entry point 'com.google.android.material.bottomnavigation.BottomNavigationMenuView { void setPresenter(com.google.android.material.bottomnavigation.BottomNavigationPresenter); }', but not the descriptor class 'com.google.android.material.bottomnavigation.BottomNavigationPresenter'
Note: the configuration keeps the entry point 'com.google.android.material.bottomnavigation.BottomNavigationView { void setOnNavigationItemSelectedListener(com.google.android.material.bottomnavigation.BottomNavigationView$OnNavigationItemSelectedListener); }', but not the descriptor class 'com.google.android.material.bottomnavigation.BottomNavigationView$OnNavigationItemSelectedListener'
Note: the configuration keeps the entry point 'com.google.android.material.bottomnavigation.BottomNavigationView { void setOnNavigationItemReselectedListener(com.google.android.material.bottomnavigation.BottomNavigationView$OnNavigationItemReselectedListener); }', but not the descriptor class 'com.google.android.material.bottomnavigation.BottomNavigationView$OnNavigationItemReselectedListener'
Note: the configuration keeps the entry point 'com.google.android.material.chip.Chip { void setChipDrawable(com.google.android.material.chip.ChipDrawable); }', but not the descriptor class 'com.google.android.material.chip.ChipDrawable'
Note: the configuration keeps the entry point 'com.google.android.material.chip.Chip { void setTextAppearance(com.google.android.material.resources.TextAppearance); }', but not the descriptor class 'com.google.android.material.resources.TextAppearance'
Note: the configuration keeps the entry point 'com.google.android.material.chip.Chip { void setShowMotionSpec(com.google.android.material.animation.MotionSpec); }', but not the descriptor class 'com.google.android.material.animation.MotionSpec'
Note: the configuration keeps the entry point 'com.google.android.material.chip.Chip { void setHideMotionSpec(com.google.android.material.animation.MotionSpec); }', but not the descriptor class 'com.google.android.material.animation.MotionSpec'
Note: the configuration keeps the entry point 'com.google.android.material.chip.ChipGroup { void setOnCheckedChangeListener(com.google.android.material.chip.ChipGroup$OnCheckedChangeListener); }', but not the descriptor class 'com.google.android.material.chip.ChipGroup$OnCheckedChangeListener'
Note: the configuration keeps the entry point 'com.google.android.material.circularreveal.CircularRevealFrameLayout { void setRevealInfo(com.google.android.material.circularreveal.CircularRevealWidget$RevealInfo); }', but not the descriptor class 'com.google.android.material.circularreveal.CircularRevealWidget$RevealInfo'
Note: the configuration keeps the entry point 'com.google.android.material.circularreveal.CircularRevealGridLayout { void setRevealInfo(com.google.android.material.circularreveal.CircularRevealWidget$RevealInfo); }', but not the descriptor class 'com.google.android.material.circularreveal.CircularRevealWidget$RevealInfo'
Note: the configuration keeps the entry point 'com.google.android.material.circularreveal.CircularRevealLinearLayout { void setRevealInfo(com.google.android.material.circularreveal.CircularRevealWidget$RevealInfo); }', but not the descriptor class 'com.google.android.material.circularreveal.CircularRevealWidget$RevealInfo'
Note: the configuration keeps the entry point 'com.google.android.material.circularreveal.CircularRevealRelativeLayout { void setRevealInfo(com.google.android.material.circularreveal.CircularRevealWidget$RevealInfo); }', but not the descriptor class 'com.google.android.material.circularreveal.CircularRevealWidget$RevealInfo'
Note: the configuration keeps the entry point 'com.google.android.material.circularreveal.cardview.CircularRevealCardView { void setRevealInfo(com.google.android.material.circularreveal.CircularRevealWidget$RevealInfo); }', but not the descriptor class 'com.google.android.material.circularreveal.CircularRevealWidget$RevealInfo'
Note: the configuration keeps the entry point 'com.google.android.material.circularreveal.coordinatorlayout.CircularRevealCoordinatorLayout { void setRevealInfo(com.google.android.material.circularreveal.CircularRevealWidget$RevealInfo); }', but not the descriptor class 'com.google.android.material.circularreveal.CircularRevealWidget$RevealInfo'
Note: the configuration keeps the entry point 'com.google.android.material.floatingactionbutton.FloatingActionButton { void setShowMotionSpec(com.google.android.material.animation.MotionSpec); }', but not the descriptor class 'com.google.android.material.animation.MotionSpec'
Note: the configuration keeps the entry point 'com.google.android.material.floatingactionbutton.FloatingActionButton { void setHideMotionSpec(com.google.android.material.animation.MotionSpec); }', but not the descriptor class 'com.google.android.material.animation.MotionSpec'
Note: the configuration keeps the entry point 'com.google.android.material.navigation.NavigationView { void setNavigationItemSelectedListener(com.google.android.material.navigation.NavigationView$OnNavigationItemSelectedListener); }', but not the descriptor class 'com.google.android.material.navigation.NavigationView$OnNavigationItemSelectedListener'
Note: the configuration keeps the entry point 'com.google.android.material.snackbar.BaseTransientBottomBar$SnackbarBaseLayout { void setOnLayoutChangeListener(com.google.android.material.snackbar.BaseTransientBottomBar$OnLayoutChangeListener); }', but not the descriptor class 'com.google.android.material.snackbar.BaseTransientBottomBar$OnLayoutChangeListener'
Note: the configuration keeps the entry point 'com.google.android.material.snackbar.BaseTransientBottomBar$SnackbarBaseLayout { void setOnAttachStateChangeListener(com.google.android.material.snackbar.BaseTransientBottomBar$OnAttachStateChangeListener); }', but not the descriptor class 'com.google.android.material.snackbar.BaseTransientBottomBar$OnAttachStateChangeListener'
Note: the configuration keeps the entry point 'com.google.android.material.tabs.TabLayout { void setOnTabSelectedListener(com.google.android.material.tabs.TabLayout$BaseOnTabSelectedListener); }', but not the descriptor class 'com.google.android.material.tabs.TabLayout$BaseOnTabSelectedListener'
Note: the configuration keeps the entry point 'com.google.android.material.textfield.TextInputLayout { void setTextInputAccessibilityDelegate(com.google.android.material.textfield.TextInputLayout$AccessibilityDelegate); }', but not the descriptor class 'com.google.android.material.textfield.TextInputLayout$AccessibilityDelegate'
Note: the configuration keeps the entry point 'com.google.firebase.abt.component.AbtRegistrar { com.google.firebase.abt.component.AbtComponent lambda$getComponents$0(com.google.firebase.components.ComponentContainer); }', but not the descriptor class 'com.google.firebase.components.ComponentContainer'
Note: the configuration keeps the entry point 'com.google.firebase.auth.PhoneAuthProvider$OnVerificationStateChangedCallbacks { void onVerificationCompleted(com.google.firebase.auth.PhoneAuthCredential); }', but not the descriptor class 'com.google.firebase.auth.PhoneAuthCredential'
Note: the configuration keeps the entry point 'com.google.firebase.auth.PhoneAuthProvider$OnVerificationStateChangedCallbacks { void onVerificationFailed(com.google.firebase.FirebaseException); }', but not the descriptor class 'com.google.firebase.FirebaseException'
Note: the configuration keeps the entry point 'com.google.firebase.auth.PhoneAuthProvider$OnVerificationStateChangedCallbacks { void onCodeSent(java.lang.String,com.google.firebase.auth.PhoneAuthProvider$ForceResendingToken); }', but not the descriptor class 'com.google.firebase.auth.PhoneAuthProvider$ForceResendingToken'
Note: the configuration keeps the entry point 'com.google.firebase.datatransport.TransportRegistrar { com.google.android.datatransport.TransportFactory lambda$getComponents$0(com.google.firebase.components.ComponentContainer); }', but not the descriptor class 'com.google.firebase.components.ComponentContainer'
Note: the configuration keeps the entry point 'com.google.firebase.iid.zzc { void zza(com.google.firebase.iid.zzc,android.content.Intent); }', but not the descriptor class 'com.google.firebase.iid.zzc'
Note: the configuration keeps the entry point 'com.google.firebase.inappmessaging.FirebaseInAppMessagingDisplay { void displayMessage(com.google.firebase.inappmessaging.model.InAppMessage,com.google.firebase.inappmessaging.FirebaseInAppMessagingDisplayCallbacks); }', but not the descriptor class 'com.google.firebase.inappmessaging.model.InAppMessage'
Note: the configuration keeps the entry point 'com.google.firebase.inappmessaging.FirebaseInAppMessagingDisplay { void displayMessage(com.google.firebase.inappmessaging.model.InAppMessage,com.google.firebase.inappmessaging.FirebaseInAppMessagingDisplayCallbacks); }', but not the descriptor class 'com.google.firebase.inappmessaging.FirebaseInAppMessagingDisplayCallbacks'
Note: the configuration keeps the entry point 'com.google.firebase.inappmessaging.FirebaseInAppMessagingRegistrar { com.google.firebase.inappmessaging.FirebaseInAppMessaging providesFirebaseInAppMessaging(com.google.firebase.components.ComponentContainer); }', but not the descriptor class 'com.google.firebase.components.ComponentContainer'
Note: the configuration keeps the entry point 'com.google.firebase.inappmessaging.FirebaseInAppMessagingRegistrar { com.google.firebase.inappmessaging.FirebaseInAppMessaging access$lambda$0(com.google.firebase.inappmessaging.FirebaseInAppMessagingRegistrar,com.google.firebase.components.ComponentContainer); }', but not the descriptor class 'com.google.firebase.components.ComponentContainer'
Note: the configuration keeps the entry point 'com.google.firebase.inappmessaging.display.FirebaseInAppMessagingDisplay { FirebaseInAppMessagingDisplay(com.google.firebase.inappmessaging.FirebaseInAppMessaging,java.util.Map,com.google.firebase.inappmessaging.display.internal.FiamImageLoader,com.google.firebase.inappmessaging.display.internal.RenewableTimer,com.google.firebase.inappmessaging.display.internal.RenewableTimer,com.google.firebase.inappmessaging.display.internal.FiamWindowManager,android.app.Application,com.google.firebase.inappmessaging.display.internal.BindingWrapperFactory,com.google.firebase.inappmessaging.display.internal.FiamAnimator); }', but not the descriptor class 'com.google.firebase.inappmessaging.display.internal.FiamImageLoader'
Note: the configuration keeps the entry point 'com.google.firebase.inappmessaging.display.FirebaseInAppMessagingDisplay { FirebaseInAppMessagingDisplay(com.google.firebase.inappmessaging.FirebaseInAppMessaging,java.util.Map,com.google.firebase.inappmessaging.display.internal.FiamImageLoader,com.google.firebase.inappmessaging.display.internal.RenewableTimer,com.google.firebase.inappmessaging.display.internal.RenewableTimer,com.google.firebase.inappmessaging.display.internal.FiamWindowManager,android.app.Application,com.google.firebase.inappmessaging.display.internal.BindingWrapperFactory,com.google.firebase.inappmessaging.display.internal.FiamAnimator); }', but not the descriptor class 'com.google.firebase.inappmessaging.display.internal.RenewableTimer'
Note: the configuration keeps the entry point 'com.google.firebase.inappmessaging.display.FirebaseInAppMessagingDisplay { FirebaseInAppMessagingDisplay(com.google.firebase.inappmessaging.FirebaseInAppMessaging,java.util.Map,com.google.firebase.inappmessaging.display.internal.FiamImageLoader,com.google.firebase.inappmessaging.display.internal.RenewableTimer,com.google.firebase.inappmessaging.display.internal.RenewableTimer,com.google.firebase.inappmessaging.display.internal.FiamWindowManager,android.app.Application,com.google.firebase.inappmessaging.display.internal.BindingWrapperFactory,com.google.firebase.inappmessaging.display.internal.FiamAnimator); }', but not the descriptor class 'com.google.firebase.inappmessaging.display.internal.RenewableTimer'
Note: the configuration keeps the entry point 'com.google.firebase.inappmessaging.display.FirebaseInAppMessagingDisplay { FirebaseInAppMessagingDisplay(com.google.firebase.inappmessaging.FirebaseInAppMessaging,java.util.Map,com.google.firebase.inappmessaging.display.internal.FiamImageLoader,com.google.firebase.inappmessaging.display.internal.RenewableTimer,com.google.firebase.inappmessaging.display.internal.RenewableTimer,com.google.firebase.inappmessaging.display.internal.FiamWindowManager,android.app.Application,com.google.firebase.inappmessaging.display.internal.BindingWrapperFactory,com.google.firebase.inappmessaging.display.internal.FiamAnimator); }', but not the descriptor class 'com.google.firebase.inappmessaging.display.internal.FiamWindowManager'
Note: the configuration keeps the entry point 'com.google.firebase.inappmessaging.display.FirebaseInAppMessagingDisplay { FirebaseInAppMessagingDisplay(com.google.firebase.inappmessaging.FirebaseInAppMessaging,java.util.Map,com.google.firebase.inappmessaging.display.internal.FiamImageLoader,com.google.firebase.inappmessaging.display.internal.RenewableTimer,com.google.firebase.inappmessaging.display.internal.RenewableTimer,com.google.firebase.inappmessaging.display.internal.FiamWindowManager,android.app.Application,com.google.firebase.inappmessaging.display.internal.BindingWrapperFactory,com.google.firebase.inappmessaging.display.internal.FiamAnimator); }', but not the descriptor class 'com.google.firebase.inappmessaging.display.internal.BindingWrapperFactory'
Note: the configuration keeps the entry point 'com.google.firebase.inappmessaging.display.FirebaseInAppMessagingDisplay { FirebaseInAppMessagingDisplay(com.google.firebase.inappmessaging.FirebaseInAppMessaging,java.util.Map,com.google.firebase.inappmessaging.display.internal.FiamImageLoader,com.google.firebase.inappmessaging.display.internal.RenewableTimer,com.google.firebase.inappmessaging.display.internal.RenewableTimer,com.google.firebase.inappmessaging.display.internal.FiamWindowManager,android.app.Application,com.google.firebase.inappmessaging.display.internal.BindingWrapperFactory,com.google.firebase.inappmessaging.display.internal.FiamAnimator); }', but not the descriptor class 'com.google.firebase.inappmessaging.display.internal.FiamAnimator'
Note: the configuration keeps the entry point 'com.google.firebase.inappmessaging.display.FirebaseInAppMessagingDisplay { void testMessage(android.app.Activity,com.google.firebase.inappmessaging.model.InAppMessage,com.google.firebase.inappmessaging.FirebaseInAppMessagingDisplayCallbacks); }', but not the descriptor class 'com.google.firebase.inappmessaging.model.InAppMessage'
Note: the configuration keeps the entry point 'com.google.firebase.inappmessaging.display.FirebaseInAppMessagingDisplay { void testMessage(android.app.Activity,com.google.firebase.inappmessaging.model.InAppMessage,com.google.firebase.inappmessaging.FirebaseInAppMessagingDisplayCallbacks); }', but not the descriptor class 'com.google.firebase.inappmessaging.FirebaseInAppMessagingDisplayCallbacks'
Note: the configuration keeps the entry point 'com.google.firebase.inappmessaging.display.FirebaseInAppMessagingDisplay { void inflateBinding(android.app.Activity,com.google.firebase.inappmessaging.display.internal.bindingwrappers.BindingWrapper); }', but not the descriptor class 'com.google.firebase.inappmessaging.display.internal.bindingwrappers.BindingWrapper'
Note: the configuration keeps the entry point 'com.google.firebase.inappmessaging.display.FirebaseInAppMessagingDisplay { java.util.List extractActions(com.google.firebase.inappmessaging.model.InAppMessage); }', but not the descriptor class 'com.google.firebase.inappmessaging.model.InAppMessage'
Note: the configuration keeps the entry point 'com.google.firebase.inappmessaging.display.FirebaseInAppMessagingDisplay { com.google.firebase.inappmessaging.model.ImageData extractImageData(com.google.firebase.inappmessaging.model.InAppMessage); }', but not the descriptor class 'com.google.firebase.inappmessaging.model.InAppMessage'
Note: the configuration keeps the entry point 'com.google.firebase.inappmessaging.display.FirebaseInAppMessagingDisplay { boolean isValidImageData(com.google.firebase.inappmessaging.model.ImageData); }', but not the descriptor class 'com.google.firebase.inappmessaging.model.ImageData'
Note: the configuration keeps the entry point 'com.google.firebase.inappmessaging.display.FirebaseInAppMessagingDisplay { void loadNullableImage(android.app.Activity,com.google.firebase.inappmessaging.display.internal.bindingwrappers.BindingWrapper,com.google.firebase.inappmessaging.model.ImageData,com.squareup.picasso.Callback); }', but not the descriptor class 'com.google.firebase.inappmessaging.display.internal.bindingwrappers.BindingWrapper'
Note: the configuration keeps the entry point 'com.google.firebase.inappmessaging.display.FirebaseInAppMessagingDisplay { void loadNullableImage(android.app.Activity,com.google.firebase.inappmessaging.display.internal.bindingwrappers.BindingWrapper,com.google.firebase.inappmessaging.model.ImageData,com.squareup.picasso.Callback); }', but not the descriptor class 'com.google.firebase.inappmessaging.model.ImageData'
Note: the configuration keeps the entry point 'com.google.firebase.inappmessaging.display.FirebaseInAppMessagingDisplay { void loadNullableImage(android.app.Activity,com.google.firebase.inappmessaging.display.internal.bindingwrappers.BindingWrapper,com.google.firebase.inappmessaging.model.ImageData,com.squareup.picasso.Callback); }', but not the descriptor class 'com.squareup.picasso.Callback'
Note: the configuration keeps the entry point 'com.google.firebase.inappmessaging.display.FirebaseInAppMessagingDisplay { com.google.firebase.inappmessaging.model.InAppMessage access$002(com.google.firebase.inappmessaging.display.FirebaseInAppMessagingDisplay,com.google.firebase.inappmessaging.model.InAppMessage); }', but not the descriptor class 'com.google.firebase.inappmessaging.model.InAppMessage'
Note: the configuration keeps the entry point 'com.google.firebase.inappmessaging.display.FirebaseInAppMessagingDisplay { com.google.firebase.inappmessaging.FirebaseInAppMessagingDisplayCallbacks access$202(com.google.firebase.inappmessaging.display.FirebaseInAppMessagingDisplay,com.google.firebase.inappmessaging.FirebaseInAppMessagingDisplayCallbacks); }', but not the descriptor class 'com.google.firebase.inappmessaging.FirebaseInAppMessagingDisplayCallbacks'
Note: the configuration keeps the entry point 'com.google.firebase.inappmessaging.display.FirebaseInAppMessagingDisplay { void access$400(com.google.firebase.inappmessaging.display.FirebaseInAppMessagingDisplay,android.app.Activity,com.google.firebase.inappmessaging.display.internal.bindingwrappers.BindingWrapper); }', but not the descriptor class 'com.google.firebase.inappmessaging.display.internal.bindingwrappers.BindingWrapper'
Note: the configuration keeps the entry point 'com.google.firebase.inappmessaging.display.FirebaseInAppMessagingDisplayRegistrar { com.google.firebase.inappmessaging.display.FirebaseInAppMessagingDisplay buildFirebaseInAppMessagingUI(com.google.firebase.components.ComponentContainer); }', but not the descriptor class 'com.google.firebase.components.ComponentContainer'
Note: the configuration keeps the entry point 'com.google.firebase.inappmessaging.display.FirebaseInAppMessagingDisplayRegistrar { com.google.firebase.inappmessaging.display.FirebaseInAppMessagingDisplay access$lambda$0(com.google.firebase.inappmessaging.display.FirebaseInAppMessagingDisplayRegistrar,com.google.firebase.components.ComponentContainer); }', but not the descriptor class 'com.google.firebase.components.ComponentContainer'
Note: the configuration keeps the entry point 'com.google.firebase.inappmessaging.display.internal.FirebaseInAppMessagingDisplayImpl { void displayMessage(com.google.firebase.inappmessaging.model.InAppMessage,com.google.firebase.inappmessaging.FirebaseInAppMessagingDisplayCallbacks); }', but not the descriptor class 'com.google.firebase.inappmessaging.model.InAppMessage'
Note: the configuration keeps the entry point 'com.google.firebase.inappmessaging.display.internal.FirebaseInAppMessagingDisplayImpl { void displayMessage(com.google.firebase.inappmessaging.model.InAppMessage,com.google.firebase.inappmessaging.FirebaseInAppMessagingDisplayCallbacks); }', but not the descriptor class 'com.google.firebase.inappmessaging.FirebaseInAppMessagingDisplayCallbacks'
Note: the configuration keeps the entry point 'com.google.firebase.messaging.FirebaseMessagingService { void onMessageReceived(com.google.firebase.messaging.RemoteMessage); }', but not the descriptor class 'com.google.firebase.messaging.RemoteMessage'
Note: the configuration keeps the entry point 'com.squareup.picasso.Picasso { Picasso(android.content.Context,com.squareup.picasso.Dispatcher,com.squareup.picasso.Cache,com.squareup.picasso.Picasso$Listener,com.squareup.picasso.Picasso$RequestTransformer,java.util.List,com.squareup.picasso.Stats,android.graphics.Bitmap$Config,boolean,boolean); }', but not the descriptor class 'com.squareup.picasso.Dispatcher'
Note: the configuration keeps the entry point 'com.squareup.picasso.Picasso { Picasso(android.content.Context,com.squareup.picasso.Dispatcher,com.squareup.picasso.Cache,com.squareup.picasso.Picasso$Listener,com.squareup.picasso.Picasso$RequestTransformer,java.util.List,com.squareup.picasso.Stats,android.graphics.Bitmap$Config,boolean,boolean); }', but not the descriptor class 'com.squareup.picasso.Cache'
Note: the configuration keeps the entry point 'com.squareup.picasso.Picasso { Picasso(android.content.Context,com.squareup.picasso.Dispatcher,com.squareup.picasso.Cache,com.squareup.picasso.Picasso$Listener,com.squareup.picasso.Picasso$RequestTransformer,java.util.List,com.squareup.picasso.Stats,android.graphics.Bitmap$Config,boolean,boolean); }', but not the descriptor class 'com.squareup.picasso.Picasso$Listener'
Note: the configuration keeps the entry point 'com.squareup.picasso.Picasso { Picasso(android.content.Context,com.squareup.picasso.Dispatcher,com.squareup.picasso.Cache,com.squareup.picasso.Picasso$Listener,com.squareup.picasso.Picasso$RequestTransformer,java.util.List,com.squareup.picasso.Stats,android.graphics.Bitmap$Config,boolean,boolean); }', but not the descriptor class 'com.squareup.picasso.Picasso$RequestTransformer'
Note: the configuration keeps the entry point 'com.squareup.picasso.Picasso { Picasso(android.content.Context,com.squareup.picasso.Dispatcher,com.squareup.picasso.Cache,com.squareup.picasso.Picasso$Listener,com.squareup.picasso.Picasso$RequestTransformer,java.util.List,com.squareup.picasso.Stats,android.graphics.Bitmap$Config,boolean,boolean); }', but not the descriptor class 'com.squareup.picasso.Stats'
Note: the configuration keeps the entry point 'com.squareup.picasso.Picasso { void cancelRequest(com.squareup.picasso.Target); }', but not the descriptor class 'com.squareup.picasso.Target'
Note: the configuration keeps the entry point 'com.squareup.picasso.Picasso { com.squareup.picasso.Request transformRequest(com.squareup.picasso.Request); }', but not the descriptor class 'com.squareup.picasso.Request'
Note: the configuration keeps the entry point 'com.squareup.picasso.Picasso { void defer(android.widget.ImageView,com.squareup.picasso.DeferredRequestCreator); }', but not the descriptor class 'com.squareup.picasso.DeferredRequestCreator'
Note: the configuration keeps the entry point 'com.squareup.picasso.Picasso { void enqueueAndSubmit(com.squareup.picasso.Action); }', but not the descriptor class 'com.squareup.picasso.Action'
Note: the configuration keeps the entry point 'com.squareup.picasso.Picasso { void submit(com.squareup.picasso.Action); }', but not the descriptor class 'com.squareup.picasso.Action'
Note: the configuration keeps the entry point 'com.squareup.picasso.Picasso { void complete(com.squareup.picasso.BitmapHunter); }', but not the descriptor class 'com.squareup.picasso.BitmapHunter'
Note: the configuration keeps the entry point 'com.squareup.picasso.Picasso { void resumeAction(com.squareup.picasso.Action); }', but not the descriptor class 'com.squareup.picasso.Action'
Note: the configuration keeps the entry point 'com.squareup.picasso.Picasso { void deliverAction(android.graphics.Bitmap,com.squareup.picasso.Picasso$LoadedFrom,com.squareup.picasso.Action,java.lang.Exception); }', but not the descriptor class 'com.squareup.picasso.Picasso$LoadedFrom'
Note: the configuration keeps the entry point 'com.squareup.picasso.Picasso { void deliverAction(android.graphics.Bitmap,com.squareup.picasso.Picasso$LoadedFrom,com.squareup.picasso.Action,java.lang.Exception); }', but not the descriptor class 'com.squareup.picasso.Action'
Note: the configuration keeps the entry point 'io.flutter.plugins.firebase.firebaseremoteconfig.FirebaseRemoteConfigPlugin { java.util.Map createRemoteConfigValueMap(com.google.firebase.remoteconfig.FirebaseRemoteConfigValue); }', but not the descriptor class 'com.google.firebase.remoteconfig.FirebaseRemoteConfigValue'
Note: the configuration keeps the entry point 'io.flutter.plugins.firebase.firebaseremoteconfig.FirebaseRemoteConfigPlugin$1 { FirebaseRemoteConfigPlugin$1(io.flutter.plugins.firebase.firebaseremoteconfig.FirebaseRemoteConfigPlugin,com.google.firebase.remoteconfig.FirebaseRemoteConfig,io.flutter.plugin.common.MethodChannel$Result); }', but not the descriptor class 'com.google.firebase.remoteconfig.FirebaseRemoteConfig'
Note: the configuration keeps the entry point 'io.flutter.plugins.firebase.firebaseremoteconfig.FirebaseRemoteConfigPlugin$1 { void onComplete(com.google.android.gms.tasks.Task); }', but not the descriptor class 'com.google.android.gms.tasks.Task'
Note: the configuration keeps the entry point 'io.flutter.plugins.firebaseauth.FirebaseAuthPlugin { java.util.Map getVerifyPhoneNumberExceptionMap(com.google.firebase.FirebaseException); }', but not the descriptor class 'com.google.firebase.FirebaseException'
Note: the configuration keeps the entry point 'io.flutter.plugins.firebaseauth.FirebaseAuthPlugin { java.util.Map userInfoToMap(com.google.firebase.auth.UserInfo); }', but not the descriptor class 'com.google.firebase.auth.UserInfo'
Note: the configuration keeps the entry point 'io.flutter.plugins.firebaseauth.FirebaseAuthPlugin { java.util.Map mapFromUser(com.google.firebase.auth.FirebaseUser); }', but not the descriptor class 'com.google.firebase.auth.FirebaseUser'
Note: the configuration keeps the entry point 'io.flutter.plugins.firebaseauth.FirebaseAuthPlugin { java.util.Map mapFromAdditionalUserInfo(com.google.firebase.auth.AdditionalUserInfo); }', but not the descriptor class 'com.google.firebase.auth.AdditionalUserInfo'
Note: the configuration keeps the entry point 'io.flutter.plugins.firebaseauth.FirebaseAuthPlugin { java.util.Map access$100(io.flutter.plugins.firebaseauth.FirebaseAuthPlugin,com.google.firebase.FirebaseException); }', but not the descriptor class 'com.google.firebase.FirebaseException'
Note: the configuration keeps the entry point 'io.flutter.plugins.firebaseauth.FirebaseAuthPlugin { java.util.Map access$300(io.flutter.plugins.firebaseauth.FirebaseAuthPlugin,com.google.firebase.auth.FirebaseUser); }', but not the descriptor class 'com.google.firebase.auth.FirebaseUser'
Note: the configuration keeps the entry point 'io.flutter.plugins.firebaseauth.FirebaseAuthPlugin { java.util.Map access$400(io.flutter.plugins.firebaseauth.FirebaseAuthPlugin,com.google.firebase.auth.AdditionalUserInfo); }', but not the descriptor class 'com.google.firebase.auth.AdditionalUserInfo'
Note: the configuration keeps the entry point 'io.flutter.plugins.firebaseauth.FirebaseAuthPlugin$1 { void onVerificationCompleted(com.google.firebase.auth.PhoneAuthCredential); }', but not the descriptor class 'com.google.firebase.auth.PhoneAuthCredential'
Note: the configuration keeps the entry point 'io.flutter.plugins.firebaseauth.FirebaseAuthPlugin$1 { void onVerificationFailed(com.google.firebase.FirebaseException); }', but not the descriptor class 'com.google.firebase.FirebaseException'
Note: the configuration keeps the entry point 'io.flutter.plugins.firebaseauth.FirebaseAuthPlugin$1 { void onCodeSent(java.lang.String,com.google.firebase.auth.PhoneAuthProvider$ForceResendingToken); }', but not the descriptor class 'com.google.firebase.auth.PhoneAuthProvider$ForceResendingToken'
Note: the configuration keeps the entry point 'io.flutter.plugins.firebaseauth.FirebaseAuthPlugin$2 { void onComplete(com.google.android.gms.tasks.Task); }', but not the descriptor class 'com.google.android.gms.tasks.Task'
Note: the configuration keeps the entry point 'io.flutter.plugins.firebaseauth.FirebaseAuthPlugin$GetSignInMethodsCompleteListener { void onComplete(com.google.android.gms.tasks.Task); }', but not the descriptor class 'com.google.android.gms.tasks.Task'
Note: the configuration keeps the entry point 'io.flutter.plugins.firebaseauth.FirebaseAuthPlugin$SignInCompleteListener { void onComplete(com.google.android.gms.tasks.Task); }', but not the descriptor class 'com.google.android.gms.tasks.Task'
Note: the configuration keeps the entry point 'io.flutter.plugins.firebaseauth.FirebaseAuthPlugin$TaskVoidCompleteListener { void onComplete(com.google.android.gms.tasks.Task); }', but not the descriptor class 'com.google.android.gms.tasks.Task'
Note: the configuration keeps the entry point 'io.flutter.plugins.firebasemessaging.FirebaseMessagingPlugin { java.util.Map parseRemoteMessage(com.google.firebase.messaging.RemoteMessage); }', but not the descriptor class 'com.google.firebase.messaging.RemoteMessage'
Note: the configuration keeps the entry point 'io.flutter.plugins.firebasemessaging.FirebaseMessagingPlugin$1 { void onComplete(com.google.android.gms.tasks.Task); }', but not the descriptor class 'com.google.android.gms.tasks.Task'
Note: the configuration keeps the entry point 'io.flutter.plugins.firebasemessaging.FirebaseMessagingPlugin$2 { void onComplete(com.google.android.gms.tasks.Task); }', but not the descriptor class 'com.google.android.gms.tasks.Task'
Note: the configuration keeps the entry point 'io.flutter.plugins.firebasemessaging.FirebaseMessagingPlugin$3 { void onComplete(com.google.android.gms.tasks.Task); }', but not the descriptor class 'com.google.android.gms.tasks.Task'
Note: the configuration keeps the entry point 'io.flutter.plugins.firebasemessaging.FirebaseMessagingPlugin$4 { void onComplete(com.google.android.gms.tasks.Task); }', but not the descriptor class 'com.google.android.gms.tasks.Task'
Note: the configuration keeps the entry point 'io.flutter.plugins.firebasemessaging.FlutterFirebaseMessagingService { void onMessageReceived(com.google.firebase.messaging.RemoteMessage); }', but not the descriptor class 'com.google.firebase.messaging.RemoteMessage'
Note: the configuration keeps the entry point 'io.flutter.plugins.firebasemlvision.BarcodeDetector { void handleDetection(com.google.firebase.ml.vision.common.FirebaseVisionImage,java.util.Map,io.flutter.plugin.common.MethodChannel$Result); }', but not the descriptor class 'com.google.firebase.ml.vision.common.FirebaseVisionImage'
Note: the configuration keeps the entry point 'io.flutter.plugins.firebasemlvision.Detector { void handleDetection(com.google.firebase.ml.vision.common.FirebaseVisionImage,java.util.Map,io.flutter.plugin.common.MethodChannel$Result); }', but not the descriptor class 'com.google.firebase.ml.vision.common.FirebaseVisionImage'
Note: the configuration keeps the entry point 'io.flutter.plugins.firebasemlvision.FaceDetector { void handleDetection(com.google.firebase.ml.vision.common.FirebaseVisionImage,java.util.Map,io.flutter.plugin.common.MethodChannel$Result); }', but not the descriptor class 'com.google.firebase.ml.vision.common.FirebaseVisionImage'
Note: the configuration keeps the entry point 'io.flutter.plugins.firebasemlvision.FaceDetector { java.util.Map getLandmarkData(com.google.firebase.ml.vision.face.FirebaseVisionFace); }', but not the descriptor class 'com.google.firebase.ml.vision.face.FirebaseVisionFace'
Note: the configuration keeps the entry point 'io.flutter.plugins.firebasemlvision.FaceDetector { double[] landmarkPosition(com.google.firebase.ml.vision.face.FirebaseVisionFace,int); }', but not the descriptor class 'com.google.firebase.ml.vision.face.FirebaseVisionFace'
Note: the configuration keeps the entry point 'io.flutter.plugins.firebasemlvision.FaceDetector { java.util.Map access$000(io.flutter.plugins.firebasemlvision.FaceDetector,com.google.firebase.ml.vision.face.FirebaseVisionFace); }', but not the descriptor class 'com.google.firebase.ml.vision.face.FirebaseVisionFace'
Note: the configuration keeps the entry point 'io.flutter.plugins.firebasemlvision.ImageLabeler { void handleDetection(com.google.firebase.ml.vision.common.FirebaseVisionImage,java.util.Map,io.flutter.plugin.common.MethodChannel$Result); }', but not the descriptor class 'com.google.firebase.ml.vision.common.FirebaseVisionImage'
Note: the configuration keeps the entry point 'io.flutter.plugins.firebasemlvision.TextRecognizer { void handleDetection(com.google.firebase.ml.vision.common.FirebaseVisionImage,java.util.Map,io.flutter.plugin.common.MethodChannel$Result); }', but not the descriptor class 'com.google.firebase.ml.vision.common.FirebaseVisionImage'
Note: the configuration keeps the entry point 'io.flutter.plugins.firebasemlvision.TextRecognizer$2 { void onSuccess(com.google.firebase.ml.vision.text.FirebaseVisionText); }', but not the descriptor class 'com.google.firebase.ml.vision.text.FirebaseVisionText'
Note: the configuration keeps the entry point 'io.flutter.plugins.googlesignin.BackgroundTaskRunner$1 { BackgroundTaskRunner$1(io.flutter.plugins.googlesignin.BackgroundTaskRunner,io.flutter.plugins.googlesignin.BackgroundTaskRunner$Callback,com.google.common.util.concurrent.ListenableFuture); }', but not the descriptor class 'com.google.common.util.concurrent.ListenableFuture'
Note: the configuration keeps the entry point 'io.flutter.plugins.googlesignin.BackgroundTaskRunner$2 { BackgroundTaskRunner$2(io.flutter.plugins.googlesignin.BackgroundTaskRunner,com.google.common.util.concurrent.SettableFuture,java.util.concurrent.Callable); }', but not the descriptor class 'com.google.common.util.concurrent.SettableFuture'
Note: the configuration keeps the entry point 'io.flutter.plugins.googlesignin.GoogleSignInPlugin$Delegate { void onSignInResult(com.google.android.gms.tasks.Task); }', but not the descriptor class 'com.google.android.gms.tasks.Task'
Note: the configuration keeps the entry point 'io.flutter.plugins.googlesignin.GoogleSignInPlugin$Delegate { void access$000(io.flutter.plugins.googlesignin.GoogleSignInPlugin$Delegate,com.google.android.gms.tasks.Task); }', but not the descriptor class 'com.google.android.gms.tasks.Task'
Note: the configuration keeps the entry point 'io.flutter.plugins.googlesignin.GoogleSignInPlugin$Delegate$1 { void onComplete(com.google.android.gms.tasks.Task); }', but not the descriptor class 'com.google.android.gms.tasks.Task'
Note: the configuration keeps the entry point 'io.flutter.plugins.googlesignin.GoogleSignInPlugin$Delegate$2 { void onComplete(com.google.android.gms.tasks.Task); }', but not the descriptor class 'com.google.android.gms.tasks.Task'
Note: the configuration keeps the entry point 'io.flutter.plugins.googlesignin.GoogleSignInPlugin$Delegate$3 { void onComplete(com.google.android.gms.tasks.Task); }', but not the descriptor class 'com.google.android.gms.tasks.Task'
Note: there were 2 references to unknown classes.
You should check your configuration for typos.
(http://proguard.sourceforge.net/manual/troubleshooting.html#unknownclass)
Note: there were 2 references to unknown class members.
You should check your configuration for typos.
Note: there were 148 unkept descriptor classes in kept class members.
You should consider explicitly keeping the mentioned classes
(using '-keep').
(http://proguard.sourceforge.net/manual/troubleshooting.html#descriptorclass)
Note: there were 90 unresolved dynamic references to classes or interfaces.
You should check if you need to specify additional program jars.
(http://proguard.sourceforge.net/manual/troubleshooting.html#dynamicalclass)
Warning: there were 58 unresolved references to classes or interfaces.
You may need to add missing library jars or update their versions.
If your code works fine without the missing classes, you can suppress
the warnings with '-dontwarn' options.
(http://proguard.sourceforge.net/manual/troubleshooting.html#unresolvedclass)
Running Gradle task 'assembleRelease'...
Running Gradle task 'assembleRelease'... Done 191,5s (!)
*******************************************************************************************
The Gradle failure may have been because of AndroidX incompatibilities in this Flutter app.
See https://goo.gl/CP92wY for more information on the problem and how to fix it.
*******************************************************************************************
Gradle task assembleRelease failed with exit code 1
Never touch the proguard conf for that project yet
Same problem for, all was working with firebase_analytics and now with firebase_remote_config and my app doesn't compile with theses errors
Note: com.google.android.gms.common.util.WorkSourceUtil: can't find dynamically referenced class android.os.WorkSource$WorkChain
Note: com.google.android.gms.internal.ads.zzbbp: can't find dynamically referenced class libcore.io.Memory
Note: com.google.android.gms.internal.ads.zzbbp: can't find dynamically referenced class org.robolectric.Robolectric
Note: com.google.android.gms.internal.ads.zzbcp: can't find dynamically referenced class com.google.protobuf.ExtensionRegistry
Note: com.google.android.gms.internal.ads.zzbcq: can't find dynamically referenced class com.google.protobuf.Extension
Note: com.google.android.gms.internal.ads.zzbct: can't find dynamically referenced class com.google.protobuf.ExtensionSchemaFull
Note: com.google.android.gms.internal.ads.zzbea: can't find dynamically referenced class com.google.protobuf.DescriptorMessageInfoFactory
Note: com.google.android.gms.internal.ads.zzbei: can't find dynamically referenced class com.google.protobuf.MapFieldSchemaFull
Note: com.google.android.gms.internal.ads.zzbev: can't find dynamically referenced class com.google.protobuf.NewInstanceSchemaFull
Note: com.google.android.gms.internal.ads.zzbfe: can't find dynamically referenced class com.google.protobuf.GeneratedMessage
Note: com.google.android.gms.internal.ads.zzbfe: can't find dynamically referenced class com.google.protobuf.UnknownFieldSetSchema
Note: com.google.android.gms.internal.measurement.zzua: can't find dynamically referenced class libcore.io.Memory
Note: com.google.android.gms.internal.measurement.zzua: can't find dynamically referenced class org.robolectric.Robolectric
Note: com.google.android.gms.internal.measurement.zzuy: can't find dynamically referenced class com.google.protobuf.ExtensionRegistry
Note: com.google.android.gms.internal.measurement.zzuz: can't find dynamically referenced class com.google.protobuf.Extension
Note: com.google.android.gms.internal.measurement.zzvc: can't find dynamically referenced class com.google.protobuf.ExtensionSchemaFull
Note: com.google.android.gms.internal.measurement.zzwi: can't find dynamically referenced class com.google.protobuf.DescriptorMessageInfoFactory
Note: com.google.android.gms.internal.measurement.zzwq: can't find dynamically referenced class com.google.protobuf.MapFieldSchemaFull
Note: com.google.android.gms.internal.measurement.zzxc: can't find dynamically referenced class com.google.protobuf.NewInstanceSchemaFull
Note: com.google.android.gms.internal.measurement.zzxl: can't find dynamically referenced class com.google.protobuf.GeneratedMessage
Note: com.google.android.gms.internal.measurement.zzxl: can't find dynamically referenced class com.google.protobuf.UnknownFieldSetSchema
Note: com.google.android.gms.measurement.internal.zzcs: can't find dynamically referenced class com.google.android.gms.tagmanager.TagManagerService
Note: com.google.android.gms.measurement.internal.zzn: can't find dynamically referenced class android.os.SystemProperties
Note: com.google.android.youtube.player.internal.aa: can't find dynamically referenced class com.google.android.youtube.api.locallylinked.LocallyLinkedFactory
Note: com.google.firebase.iid.FirebaseInstanceId$zza: can't find dynamically referenced class com.google.firebase.messaging.FirebaseMessaging
Note: io.flutter.view.AccessibilityViewEmbedder$ReflectionAccessors: can't find dynamically referenced class android.util.LongArray
Note: kotlin.internal.PlatformImplementationsKt: can't find dynamically referenced class kotlin.internal.jdk8.JDK8PlatformImplementations
Note: kotlin.internal.PlatformImplementationsKt: can't find dynamically referenced class kotlin.internal.JRE8PlatformImplementations
Note: kotlin.internal.PlatformImplementationsKt: can't find dynamically referenced class kotlin.internal.JRE7PlatformImplementations
Note: kotlin.jvm.internal.Reflection: can't find dynamically referenced class kotlin.reflect.jvm.internal.ReflectionFactoryImpl
Note: the configuration refers to the unknown field 'com.google.android.gms.common.api.internal.BasePendingResult$ReleasableResultGuardian mResultGuardian' in class 'com.google.android.gms.common.api.internal.BasePendingResult'
Note: the configuration keeps the entry point 'com.facebook.stetho.dumpapp.Dumper { Dumper(java.lang.Iterable,org.apache.commons.cli.CommandLineParser); }', but not the descriptor class 'org.apache.commons.cli.CommandLineParser'
Note: the configuration keeps the entry point 'com.facebook.stetho.dumpapp.Dumper { void dumpPluginOutput(java.io.InputStream,java.io.PrintStream,java.io.PrintStream,org.apache.commons.cli.CommandLine); }', but not the descriptor class 'org.apache.commons.cli.CommandLine'
Note: the configuration keeps the entry point 'com.facebook.stetho.dumpapp.DumperContext { DumperContext(java.io.InputStream,java.io.PrintStream,java.io.PrintStream,org.apache.commons.cli.CommandLineParser,java.util.List); }', but not the descriptor class 'org.apache.commons.cli.CommandLineParser'
Note: the configuration keeps the entry point 'com.google.ads.mediation.AbstractAdViewAdapter { com.google.android.gms.ads.AdRequest zza(android.content.Context,com.google.android.gms.ads.mediation.MediationAdRequest,android.os.Bundle,android.os.Bundle); }', but not the descriptor class 'com.google.android.gms.ads.mediation.MediationAdRequest'
Note: the configuration keeps the entry point 'com.google.ads.mediation.AbstractAdViewAdapter { void requestBannerAd(android.content.Context,com.google.android.gms.ads.mediation.MediationBannerListener,android.os.Bundle,com.google.android.gms.ads.AdSize,com.google.android.gms.ads.mediation.MediationAdRequest,android.os.Bundle); }', but not the descriptor class 'com.google.android.gms.ads.mediation.MediationBannerListener'
Note: the configuration keeps the entry point 'com.google.ads.mediation.AbstractAdViewAdapter { void requestBannerAd(android.content.Context,com.google.android.gms.ads.mediation.MediationBannerListener,android.os.Bundle,com.google.android.gms.ads.AdSize,com.google.android.gms.ads.mediation.MediationAdRequest,android.os.Bundle); }', but not the descriptor class 'com.google.android.gms.ads.AdSize'
Note: the configuration keeps the entry point 'com.google.ads.mediation.AbstractAdViewAdapter { void requestBannerAd(android.content.Context,com.google.android.gms.ads.mediation.MediationBannerListener,android.os.Bundle,com.google.android.gms.ads.AdSize,com.google.android.gms.ads.mediation.MediationAdRequest,android.os.Bundle); }', but not the descriptor class 'com.google.android.gms.ads.mediation.MediationAdRequest'
Note: the configuration keeps the entry point 'com.google.ads.mediation.AbstractAdViewAdapter { void requestInterstitialAd(android.content.Context,com.google.android.gms.ads.mediation.MediationInterstitialListener,android.os.Bundle,com.google.android.gms.ads.mediation.MediationAdRequest,android.os.Bundle); }', but not the descriptor class 'com.google.android.gms.ads.mediation.MediationInterstitialListener'
Note: the configuration keeps the entry point 'com.google.ads.mediation.AbstractAdViewAdapter { void requestInterstitialAd(android.content.Context,com.google.android.gms.ads.mediation.MediationInterstitialListener,android.os.Bundle,com.google.android.gms.ads.mediation.MediationAdRequest,android.os.Bundle); }', but not the descriptor class 'com.google.android.gms.ads.mediation.MediationAdRequest'
Note: the configuration keeps the entry point 'com.google.ads.mediation.AbstractAdViewAdapter { void requestNativeAd(android.content.Context,com.google.android.gms.ads.mediation.MediationNativeListener,android.os.Bundle,com.google.android.gms.ads.mediation.NativeMediationAdRequest,android.os.Bundle); }', but not the descriptor class 'com.google.android.gms.ads.mediation.MediationNativeListener'
Note: the configuration keeps the entry point 'com.google.ads.mediation.AbstractAdViewAdapter { void requestNativeAd(android.content.Context,com.google.android.gms.ads.mediation.MediationNativeListener,android.os.Bundle,com.google.android.gms.ads.mediation.NativeMediationAdRequest,android.os.Bundle); }', but not the descriptor class 'com.google.android.gms.ads.mediation.NativeMediationAdRequest'
Note: the configuration keeps the entry point 'com.google.ads.mediation.AbstractAdViewAdapter { void initialize(android.content.Context,com.google.android.gms.ads.mediation.MediationAdRequest,java.lang.String,com.google.android.gms.ads.reward.mediation.MediationRewardedVideoAdListener,android.os.Bundle,android.os.Bundle); }', but not the descriptor class 'com.google.android.gms.ads.mediation.MediationAdRequest'
Note: the configuration keeps the entry point 'com.google.ads.mediation.AbstractAdViewAdapter { void initialize(android.content.Context,com.google.android.gms.ads.mediation.MediationAdRequest,java.lang.String,com.google.android.gms.ads.reward.mediation.MediationRewardedVideoAdListener,android.os.Bundle,android.os.Bundle); }', but not the descriptor class 'com.google.android.gms.ads.reward.mediation.MediationRewardedVideoAdListener'
Note: the configuration keeps the entry point 'com.google.ads.mediation.AbstractAdViewAdapter { void loadAd(com.google.android.gms.ads.mediation.MediationAdRequest,android.os.Bundle,android.os.Bundle); }', but not the descriptor class 'com.google.android.gms.ads.mediation.MediationAdRequest'
Note: the configuration keeps the entry point 'com.google.ads.mediation.AbstractAdViewAdapter { com.google.android.gms.ads.InterstitialAd zza(com.google.ads.mediation.AbstractAdViewAdapter,com.google.android.gms.ads.InterstitialAd); }', but not the descriptor class 'com.google.android.gms.ads.InterstitialAd'
Note: the configuration keeps the entry point 'com.google.ads.mediation.MediationBannerAdapter { void requestBannerAd(com.google.ads.mediation.MediationBannerListener,android.app.Activity,com.google.ads.mediation.MediationServerParameters,com.google.ads.AdSize,com.google.ads.mediation.MediationAdRequest,com.google.ads.mediation.NetworkExtras); }', but not the descriptor class 'com.google.ads.mediation.MediationBannerListener'
Note: the configuration keeps the entry point 'com.google.ads.mediation.MediationBannerAdapter { void requestBannerAd(com.google.ads.mediation.MediationBannerListener,android.app.Activity,com.google.ads.mediation.MediationServerParameters,com.google.ads.AdSize,com.google.ads.mediation.MediationAdRequest,com.google.ads.mediation.NetworkExtras); }', but not the descriptor class 'com.google.ads.mediation.MediationServerParameters'
Note: the configuration keeps the entry point 'com.google.ads.mediation.MediationBannerAdapter { void requestBannerAd(com.google.ads.mediation.MediationBannerListener,android.app.Activity,com.google.ads.mediation.MediationServerParameters,com.google.ads.AdSize,com.google.ads.mediation.MediationAdRequest,com.google.ads.mediation.NetworkExtras); }', but not the descriptor class 'com.google.ads.AdSize'
Note: the configuration keeps the entry point 'com.google.ads.mediation.MediationBannerAdapter { void requestBannerAd(com.google.ads.mediation.MediationBannerListener,android.app.Activity,com.google.ads.mediation.MediationServerParameters,com.google.ads.AdSize,com.google.ads.mediation.MediationAdRequest,com.google.ads.mediation.NetworkExtras); }', but not the descriptor class 'com.google.ads.mediation.MediationAdRequest'
Note: the configuration keeps the entry point 'com.google.ads.mediation.MediationBannerAdapter { void requestBannerAd(com.google.ads.mediation.MediationBannerListener,android.app.Activity,com.google.ads.mediation.MediationServerParameters,com.google.ads.AdSize,com.google.ads.mediation.MediationAdRequest,com.google.ads.mediation.NetworkExtras); }', but not the descriptor class 'com.google.ads.mediation.NetworkExtras'
Note: the configuration keeps the entry point 'com.google.ads.mediation.MediationInterstitialAdapter { void requestInterstitialAd(com.google.ads.mediation.MediationInterstitialListener,android.app.Activity,com.google.ads.mediation.MediationServerParameters,com.google.ads.mediation.MediationAdRequest,com.google.ads.mediation.NetworkExtras); }', but not the descriptor class 'com.google.ads.mediation.MediationInterstitialListener'
Note: the configuration keeps the entry point 'com.google.ads.mediation.MediationInterstitialAdapter { void requestInterstitialAd(com.google.ads.mediation.MediationInterstitialListener,android.app.Activity,com.google.ads.mediation.MediationServerParameters,com.google.ads.mediation.MediationAdRequest,com.google.ads.mediation.NetworkExtras); }', but not the descriptor class 'com.google.ads.mediation.MediationServerParameters'
Note: the configuration keeps the entry point 'com.google.ads.mediation.MediationInterstitialAdapter { void requestInterstitialAd(com.google.ads.mediation.MediationInterstitialListener,android.app.Activity,com.google.ads.mediation.MediationServerParameters,com.google.ads.mediation.MediationAdRequest,com.google.ads.mediation.NetworkExtras); }', but not the descriptor class 'com.google.ads.mediation.MediationAdRequest'
Note: the configuration keeps the entry point 'com.google.ads.mediation.MediationInterstitialAdapter { void requestInterstitialAd(com.google.ads.mediation.MediationInterstitialListener,android.app.Activity,com.google.ads.mediation.MediationServerParameters,com.google.ads.mediation.MediationAdRequest,com.google.ads.mediation.NetworkExtras); }', but not the descriptor class 'com.google.ads.mediation.NetworkExtras'
Note: the configuration keeps the entry point 'com.google.ads.mediation.customevent.CustomEventAdapter { void requestBannerAd(com.google.ads.mediation.MediationBannerListener,android.app.Activity,com.google.ads.mediation.customevent.CustomEventServerParameters,com.google.ads.AdSize,com.google.ads.mediation.MediationAdRequest,com.google.android.gms.ads.mediation.customevent.CustomEventExtras); }', but not the descriptor class 'com.google.ads.mediation.MediationBannerListener'
Note: the configuration keeps the entry point 'com.google.ads.mediation.customevent.CustomEventAdapter { void requestBannerAd(com.google.ads.mediation.MediationBannerListener,android.app.Activity,com.google.ads.mediation.customevent.CustomEventServerParameters,com.google.ads.AdSize,com.google.ads.mediation.MediationAdRequest,com.google.android.gms.ads.mediation.customevent.CustomEventExtras); }', but not the descriptor class 'com.google.ads.mediation.customevent.CustomEventServerParameters'
Note: the configuration keeps the entry point 'com.google.ads.mediation.customevent.CustomEventAdapter { void requestBannerAd(com.google.ads.mediation.MediationBannerListener,android.app.Activity,com.google.ads.mediation.customevent.CustomEventServerParameters,com.google.ads.AdSize,com.google.ads.mediation.MediationAdRequest,com.google.android.gms.ads.mediation.customevent.CustomEventExtras); }', but not the descriptor class 'com.google.ads.AdSize'
Note: the configuration keeps the entry point 'com.google.ads.mediation.customevent.CustomEventAdapter { void requestBannerAd(com.google.ads.mediation.MediationBannerListener,android.app.Activity,com.google.ads.mediation.customevent.CustomEventServerParameters,com.google.ads.AdSize,com.google.ads.mediation.MediationAdRequest,com.google.android.gms.ads.mediation.customevent.CustomEventExtras); }', but not the descriptor class 'com.google.ads.mediation.MediationAdRequest'
Note: the configuration keeps the entry point 'com.google.ads.mediation.customevent.CustomEventAdapter { void requestBannerAd(com.google.ads.mediation.MediationBannerListener,android.app.Activity,com.google.ads.mediation.customevent.CustomEventServerParameters,com.google.ads.AdSize,com.google.ads.mediation.MediationAdRequest,com.google.android.gms.ads.mediation.customevent.CustomEventExtras); }', but not the descriptor class 'com.google.android.gms.ads.mediation.customevent.CustomEventExtras'
Note: the configuration keeps the entry point 'com.google.ads.mediation.customevent.CustomEventAdapter { void requestInterstitialAd(com.google.ads.mediation.MediationInterstitialListener,android.app.Activity,com.google.ads.mediation.customevent.CustomEventServerParameters,com.google.ads.mediation.MediationAdRequest,com.google.android.gms.ads.mediation.customevent.CustomEventExtras); }', but not the descriptor class 'com.google.ads.mediation.MediationInterstitialListener'
Note: the configuration keeps the entry point 'com.google.ads.mediation.customevent.CustomEventAdapter { void requestInterstitialAd(com.google.ads.mediation.MediationInterstitialListener,android.app.Activity,com.google.ads.mediation.customevent.CustomEventServerParameters,com.google.ads.mediation.MediationAdRequest,com.google.android.gms.ads.mediation.customevent.CustomEventExtras); }', but not the descriptor class 'com.google.ads.mediation.customevent.CustomEventServerParameters'
Note: the configuration keeps the entry point 'com.google.ads.mediation.customevent.CustomEventAdapter { void requestInterstitialAd(com.google.ads.mediation.MediationInterstitialListener,android.app.Activity,com.google.ads.mediation.customevent.CustomEventServerParameters,com.google.ads.mediation.MediationAdRequest,com.google.android.gms.ads.mediation.customevent.CustomEventExtras); }', but not the descriptor class 'com.google.ads.mediation.MediationAdRequest'
Note: the configuration keeps the entry point 'com.google.ads.mediation.customevent.CustomEventAdapter { void requestInterstitialAd(com.google.ads.mediation.MediationInterstitialListener,android.app.Activity,com.google.ads.mediation.customevent.CustomEventServerParameters,com.google.ads.mediation.MediationAdRequest,com.google.android.gms.ads.mediation.customevent.CustomEventExtras); }', but not the descriptor class 'com.google.android.gms.ads.mediation.customevent.CustomEventExtras'
Note: the configuration keeps the entry point 'com.google.ads.mediation.customevent.CustomEventAdapter { void requestBannerAd(com.google.ads.mediation.MediationBannerListener,android.app.Activity,com.google.ads.mediation.MediationServerParameters,com.google.ads.AdSize,com.google.ads.mediation.MediationAdRequest,com.google.ads.mediation.NetworkExtras); }', but not the descriptor class 'com.google.ads.mediation.MediationBannerListener'
Note: the configuration keeps the entry point 'com.google.ads.mediation.customevent.CustomEventAdapter { void requestBannerAd(com.google.ads.mediation.MediationBannerListener,android.app.Activity,com.google.ads.mediation.MediationServerParameters,com.google.ads.AdSize,com.google.ads.mediation.MediationAdRequest,com.google.ads.mediation.NetworkExtras); }', but not the descriptor class 'com.google.ads.mediation.MediationServerParameters'
Note: the configuration keeps the entry point 'com.google.ads.mediation.customevent.CustomEventAdapter { void requestBannerAd(com.google.ads.mediation.MediationBannerListener,android.app.Activity,com.google.ads.mediation.MediationServerParameters,com.google.ads.AdSize,com.google.ads.mediation.MediationAdRequest,com.google.ads.mediation.NetworkExtras); }', but not the descriptor class 'com.google.ads.AdSize'
Note: the configuration keeps the entry point 'com.google.ads.mediation.customevent.CustomEventAdapter { void requestBannerAd(com.google.ads.mediation.MediationBannerListener,android.app.Activity,com.google.ads.mediation.MediationServerParameters,com.google.ads.AdSize,com.google.ads.mediation.MediationAdRequest,com.google.ads.mediation.NetworkExtras); }', but not the descriptor class 'com.google.ads.mediation.MediationAdRequest'
Note: the configuration keeps the entry point 'com.google.ads.mediation.customevent.CustomEventAdapter { void requestBannerAd(com.google.ads.mediation.MediationBannerListener,android.app.Activity,com.google.ads.mediation.MediationServerParameters,com.google.ads.AdSize,com.google.ads.mediation.MediationAdRequest,com.google.ads.mediation.NetworkExtras); }', but not the descriptor class 'com.google.ads.mediation.NetworkExtras'
Note: the configuration keeps the entry point 'com.google.ads.mediation.customevent.CustomEventAdapter { void requestInterstitialAd(com.google.ads.mediation.MediationInterstitialListener,android.app.Activity,com.google.ads.mediation.MediationServerParameters,com.google.ads.mediation.MediationAdRequest,com.google.ads.mediation.NetworkExtras); }', but not the descriptor class 'com.google.ads.mediation.MediationInterstitialListener'
Note: the configuration keeps the entry point 'com.google.ads.mediation.customevent.CustomEventAdapter { void requestInterstitialAd(com.google.ads.mediation.MediationInterstitialListener,android.app.Activity,com.google.ads.mediation.MediationServerParameters,com.google.ads.mediation.MediationAdRequest,com.google.ads.mediation.NetworkExtras); }', but not the descriptor class 'com.google.ads.mediation.MediationServerParameters'
Note: the configuration keeps the entry point 'com.google.ads.mediation.customevent.CustomEventAdapter { void requestInterstitialAd(com.google.ads.mediation.MediationInterstitialListener,android.app.Activity,com.google.ads.mediation.MediationServerParameters,com.google.ads.mediation.MediationAdRequest,com.google.ads.mediation.NetworkExtras); }', but not the descriptor class 'com.google.ads.mediation.MediationAdRequest'
Note: the configuration keeps the entry point 'com.google.ads.mediation.customevent.CustomEventAdapter { void requestInterstitialAd(com.google.ads.mediation.MediationInterstitialListener,android.app.Activity,com.google.ads.mediation.MediationServerParameters,com.google.ads.mediation.MediationAdRequest,com.google.ads.mediation.NetworkExtras); }', but not the descriptor class 'com.google.ads.mediation.NetworkExtras'
Note: the configuration keeps the entry point 'com.google.ads.mediation.customevent.CustomEventBanner { void requestBannerAd(com.google.ads.mediation.customevent.CustomEventBannerListener,android.app.Activity,java.lang.String,java.lang.String,com.google.ads.AdSize,com.google.ads.mediation.MediationAdRequest,java.lang.Object); }', but not the descriptor class 'com.google.ads.mediation.customevent.CustomEventBannerListener'
Note: the configuration keeps the entry point 'com.google.ads.mediation.customevent.CustomEventBanner { void requestBannerAd(com.google.ads.mediation.customevent.CustomEventBannerListener,android.app.Activity,java.lang.String,java.lang.String,com.google.ads.AdSize,com.google.ads.mediation.MediationAdRequest,java.lang.Object); }', but not the descriptor class 'com.google.ads.AdSize'
Note: the configuration keeps the entry point 'com.google.ads.mediation.customevent.CustomEventBanner { void requestBannerAd(com.google.ads.mediation.customevent.CustomEventBannerListener,android.app.Activity,java.lang.String,java.lang.String,com.google.ads.AdSize,com.google.ads.mediation.MediationAdRequest,java.lang.Object); }', but not the descriptor class 'com.google.ads.mediation.MediationAdRequest'
Note: the configuration keeps the entry point 'com.google.ads.mediation.customevent.CustomEventInterstitial { void requestInterstitialAd(com.google.ads.mediation.customevent.CustomEventInterstitialListener,android.app.Activity,java.lang.String,java.lang.String,com.google.ads.mediation.MediationAdRequest,java.lang.Object); }', but not the descriptor class 'com.google.ads.mediation.customevent.CustomEventInterstitialListener'
Note: the configuration keeps the entry point 'com.google.ads.mediation.customevent.CustomEventInterstitial { void requestInterstitialAd(com.google.ads.mediation.customevent.CustomEventInterstitialListener,android.app.Activity,java.lang.String,java.lang.String,com.google.ads.mediation.MediationAdRequest,java.lang.Object); }', but not the descriptor class 'com.google.ads.mediation.MediationAdRequest'
Note: the configuration keeps the entry point 'com.google.android.gms.ads.AdView { void setAdSize(com.google.android.gms.ads.AdSize); }', but not the descriptor class 'com.google.android.gms.ads.AdSize'
Note: the configuration keeps the entry point 'com.google.android.gms.ads.AdView { void setAdListener(com.google.android.gms.ads.AdListener); }', but not the descriptor class 'com.google.android.gms.ads.AdListener'
Note: the configuration keeps the entry point 'com.google.android.gms.ads.BaseAdView { void setAdListener(com.google.android.gms.ads.AdListener); }', but not the descriptor class 'com.google.android.gms.ads.AdListener'
Note: the configuration keeps the entry point 'com.google.android.gms.ads.BaseAdView { void setAdSize(com.google.android.gms.ads.AdSize); }', but not the descriptor class 'com.google.android.gms.ads.AdSize'
Note: the configuration keeps the entry point 'com.google.android.gms.ads.NativeExpressAdView { void setVideoOptions(com.google.android.gms.ads.VideoOptions); }', but not the descriptor class 'com.google.android.gms.ads.VideoOptions'
Note: the configuration keeps the entry point 'com.google.android.gms.ads.NativeExpressAdView { void setAdSize(com.google.android.gms.ads.AdSize); }', but not the descriptor class 'com.google.android.gms.ads.AdSize'
Note: the configuration keeps the entry point 'com.google.android.gms.ads.NativeExpressAdView { void setAdListener(com.google.android.gms.ads.AdListener); }', but not the descriptor class 'com.google.android.gms.ads.AdListener'
Note: the configuration keeps the entry point 'com.google.android.gms.ads.doubleclick.PublisherAdView { void setVideoOptions(com.google.android.gms.ads.VideoOptions); }', but not the descriptor class 'com.google.android.gms.ads.VideoOptions'
Note: the configuration keeps the entry point 'com.google.android.gms.ads.doubleclick.PublisherAdView { void setAdListener(com.google.android.gms.ads.AdListener); }', but not the descriptor class 'com.google.android.gms.ads.AdListener'
Note: the configuration keeps the entry point 'com.google.android.gms.ads.doubleclick.PublisherAdView { void setAdSizes(com.google.android.gms.ads.AdSize[]); }', but not the descriptor class 'com.google.android.gms.ads.AdSize'
Note: the configuration keeps the entry point 'com.google.android.gms.ads.doubleclick.PublisherAdView { void setAppEventListener(com.google.android.gms.ads.doubleclick.AppEventListener); }', but not the descriptor class 'com.google.android.gms.ads.doubleclick.AppEventListener'
Note: the configuration keeps the entry point 'com.google.android.gms.ads.doubleclick.PublisherAdView { void setCorrelator(com.google.android.gms.ads.Correlator); }', but not the descriptor class 'com.google.android.gms.ads.Correlator'
Note: the configuration keeps the entry point 'com.google.android.gms.ads.doubleclick.PublisherAdView { void setOnCustomRenderedAdLoadedListener(com.google.android.gms.ads.doubleclick.OnCustomRenderedAdLoadedListener); }', but not the descriptor class 'com.google.android.gms.ads.doubleclick.OnCustomRenderedAdLoadedListener'
Note: the configuration keeps the entry point 'com.google.android.gms.ads.formats.NativeAdView { void setAdChoicesView(com.google.android.gms.ads.formats.AdChoicesView); }', but not the descriptor class 'com.google.android.gms.ads.formats.AdChoicesView'
Note: the configuration keeps the entry point 'com.google.android.gms.ads.formats.NativeAdView { void setNativeAd(com.google.android.gms.ads.formats.NativeAd); }', but not the descriptor class 'com.google.android.gms.ads.formats.NativeAd'
Note: the configuration keeps the entry point 'com.google.android.gms.ads.formats.NativeAppInstallAdView { void setMediaView(com.google.android.gms.ads.formats.MediaView); }', but not the descriptor class 'com.google.android.gms.ads.formats.MediaView'
Note: the configuration keeps the entry point 'com.google.android.gms.ads.formats.NativeContentAdView { void setMediaView(com.google.android.gms.ads.formats.MediaView); }', but not the descriptor class 'com.google.android.gms.ads.formats.MediaView'
Note: the configuration keeps the entry point 'com.google.android.gms.ads.formats.UnifiedNativeAdView { void setMediaView(com.google.android.gms.ads.formats.MediaView); }', but not the descriptor class 'com.google.android.gms.ads.formats.MediaView'
Note: the configuration keeps the entry point 'com.google.android.gms.ads.formats.UnifiedNativeAdView { void setAdChoicesView(com.google.android.gms.ads.formats.AdChoicesView); }', but not the descriptor class 'com.google.android.gms.ads.formats.AdChoicesView'
Note: the configuration keeps the entry point 'com.google.android.gms.ads.formats.UnifiedNativeAdView { void setNativeAd(com.google.android.gms.ads.formats.UnifiedNativeAd); }', but not the descriptor class 'com.google.android.gms.ads.formats.UnifiedNativeAd'
Note: the configuration keeps the entry point 'com.google.android.gms.ads.internal.ClientApi { com.google.android.gms.internal.ads.zzku createBannerAdManager(com.google.android.gms.dynamic.IObjectWrapper,com.google.android.gms.internal.ads.zzjo,java.lang.String,com.google.android.gms.internal.ads.zzyn,int); }', but not the descriptor class 'com.google.android.gms.dynamic.IObjectWrapper'
Note: the configuration keeps the entry point 'com.google.android.gms.ads.internal.ClientApi { com.google.android.gms.internal.ads.zzku createBannerAdManager(com.google.android.gms.dynamic.IObjectWrapper,com.google.android.gms.internal.ads.zzjo,java.lang.String,com.google.android.gms.internal.ads.zzyn,int); }', but not the descriptor class 'com.google.android.gms.internal.ads.zzyn'
Note: the configuration keeps the entry point 'com.google.android.gms.ads.internal.ClientApi { com.google.android.gms.internal.ads.zzku createSearchAdManager(com.google.android.gms.dynamic.IObjectWrapper,com.google.android.gms.internal.ads.zzjo,java.lang.String,int); }', but not the descriptor class 'com.google.android.gms.dynamic.IObjectWrapper'
Note: the configuration keeps the entry point 'com.google.android.gms.ads.internal.ClientApi { com.google.android.gms.internal.ads.zzku createInterstitialAdManager(com.google.android.gms.dynamic.IObjectWrapper,com.google.android.gms.internal.ads.zzjo,java.lang.String,com.google.android.gms.internal.ads.zzyn,int); }', but not the descriptor class 'com.google.android.gms.dynamic.IObjectWrapper'
Note: the configuration keeps the entry point 'com.google.android.gms.ads.internal.ClientApi { com.google.android.gms.internal.ads.zzku createInterstitialAdManager(com.google.android.gms.dynamic.IObjectWrapper,com.google.android.gms.internal.ads.zzjo,java.lang.String,com.google.android.gms.internal.ads.zzyn,int); }', but not the descriptor class 'com.google.android.gms.internal.ads.zzyn'
Note: the configuration keeps the entry point 'com.google.android.gms.ads.internal.ClientApi { com.google.android.gms.internal.ads.zzkp createAdLoaderBuilder(com.google.android.gms.dynamic.IObjectWrapper,java.lang.String,com.google.android.gms.internal.ads.zzyn,int); }', but not the descriptor class 'com.google.android.gms.dynamic.IObjectWrapper'
Note: the configuration keeps the entry point 'com.google.android.gms.ads.internal.ClientApi { com.google.android.gms.internal.ads.zzkp createAdLoaderBuilder(com.google.android.gms.dynamic.IObjectWrapper,java.lang.String,com.google.android.gms.internal.ads.zzyn,int); }', but not the descriptor class 'com.google.android.gms.internal.ads.zzyn'
Note: the configuration keeps the entry point 'com.google.android.gms.ads.internal.ClientApi { com.google.android.gms.internal.ads.zzll getMobileAdsSettingsManager(com.google.android.gms.dynamic.IObjectWrapper); }', but not the descriptor class 'com.google.android.gms.dynamic.IObjectWrapper'
Note: the configuration keeps the entry point 'com.google.android.gms.ads.internal.ClientApi { com.google.android.gms.internal.ads.zzll getMobileAdsSettingsManagerWithClientJarVersion(com.google.android.gms.dynamic.IObjectWrapper,int); }', but not the descriptor class 'com.google.android.gms.dynamic.IObjectWrapper'
Note: the configuration keeps the entry point 'com.google.android.gms.ads.internal.ClientApi { com.google.android.gms.internal.ads.zzqo createNativeAdViewDelegate(com.google.android.gms.dynamic.IObjectWrapper,com.google.android.gms.dynamic.IObjectWrapper); }', but not the descriptor class 'com.google.android.gms.dynamic.IObjectWrapper'
Note: the configuration keeps the entry point 'com.google.android.gms.ads.internal.ClientApi { com.google.android.gms.internal.ads.zzqo createNativeAdViewDelegate(com.google.android.gms.dynamic.IObjectWrapper,com.google.android.gms.dynamic.IObjectWrapper); }', but not the descriptor class 'com.google.android.gms.dynamic.IObjectWrapper'
Note: the configuration keeps the entry point 'com.google.android.gms.ads.internal.ClientApi { com.google.android.gms.internal.ads.zzqt createNativeAdViewHolderDelegate(com.google.android.gms.dynamic.IObjectWrapper,com.google.android.gms.dynamic.IObjectWrapper,com.google.android.gms.dynamic.IObjectWrapper); }', but not the descriptor class 'com.google.android.gms.dynamic.IObjectWrapper'
Note: the configuration keeps the entry point 'com.google.android.gms.ads.internal.ClientApi { com.google.android.gms.internal.ads.zzqt createNativeAdViewHolderDelegate(com.google.android.gms.dynamic.IObjectWrapper,com.google.android.gms.dynamic.IObjectWrapper,com.google.android.gms.dynamic.IObjectWrapper); }', but not the descriptor class 'com.google.android.gms.dynamic.IObjectWrapper'
Note: the configuration keeps the entry point 'com.google.android.gms.ads.internal.ClientApi { com.google.android.gms.internal.ads.zzqt createNativeAdViewHolderDelegate(com.google.android.gms.dynamic.IObjectWrapper,com.google.android.gms.dynamic.IObjectWrapper,com.google.android.gms.dynamic.IObjectWrapper); }', but not the descriptor class 'com.google.android.gms.dynamic.IObjectWrapper'
Note: the configuration keeps the entry point 'com.google.android.gms.ads.internal.ClientApi { com.google.android.gms.internal.ads.zzaid createRewardedVideoAd(com.google.android.gms.dynamic.IObjectWrapper,com.google.android.gms.internal.ads.zzyn,int); }', but not the descriptor class 'com.google.android.gms.dynamic.IObjectWrapper'
Note: the configuration keeps the entry point 'com.google.android.gms.ads.internal.ClientApi { com.google.android.gms.internal.ads.zzaid createRewardedVideoAd(com.google.android.gms.dynamic.IObjectWrapper,com.google.android.gms.internal.ads.zzyn,int); }', but not the descriptor class 'com.google.android.gms.internal.ads.zzyn'
Note: the configuration keeps the entry point 'com.google.android.gms.ads.internal.ClientApi { com.google.android.gms.internal.ads.zzaid createRewardedVideoAdSku(com.google.android.gms.dynamic.IObjectWrapper,int); }', but not the descriptor class 'com.google.android.gms.dynamic.IObjectWrapper'
Note: the configuration keeps the entry point 'com.google.android.gms.ads.internal.ClientApi { com.google.android.gms.internal.ads.zzacg createInAppPurchaseManager(com.google.android.gms.dynamic.IObjectWrapper); }', but not the descriptor class 'com.google.android.gms.dynamic.IObjectWrapper'
Note: the configuration keeps the entry point 'com.google.android.gms.ads.internal.ClientApi { com.google.android.gms.internal.ads.zzabw createAdOverlay(com.google.android.gms.dynamic.IObjectWrapper); }', but not the descriptor class 'com.google.android.gms.dynamic.IObjectWrapper'
Note: the configuration keeps the entry point 'com.google.android.gms.ads.internal.gmsg.HttpClient { org.json.JSONObject zza(com.google.android.gms.ads.internal.gmsg.HttpClient$zzd); }', but not the descriptor class 'com.google.android.gms.ads.internal.gmsg.HttpClient$zzd'
Note: the configuration keeps the entry point 'com.google.android.gms.ads.internal.gmsg.HttpClient { com.google.android.gms.ads.internal.gmsg.HttpClient$zzc zza(com.google.android.gms.ads.internal.gmsg.HttpClient$zzb); }', but not the descriptor class 'com.google.android.gms.ads.internal.gmsg.HttpClient$zzb'
Note: the configuration keeps the entry point 'com.google.android.gms.ads.mediation.MediationBannerAdapter { void requestBannerAd(android.content.Context,com.google.android.gms.ads.mediation.MediationBannerListener,android.os.Bundle,com.google.android.gms.ads.AdSize,com.google.android.gms.ads.mediation.MediationAdRequest,android.os.Bundle); }', but not the descriptor class 'com.google.android.gms.ads.mediation.MediationBannerListener'
Note: the configuration keeps the entry point 'com.google.android.gms.ads.mediation.MediationBannerAdapter { void requestBannerAd(android.content.Context,com.google.android.gms.ads.mediation.MediationBannerListener,android.os.Bundle,com.google.android.gms.ads.AdSize,com.google.android.gms.ads.mediation.MediationAdRequest,android.os.Bundle); }', but not the descriptor class 'com.google.android.gms.ads.AdSize'
Note: the configuration keeps the entry point 'com.google.android.gms.ads.mediation.MediationBannerAdapter { void requestBannerAd(android.content.Context,com.google.android.gms.ads.mediation.MediationBannerListener,android.os.Bundle,com.google.android.gms.ads.AdSize,com.google.android.gms.ads.mediation.MediationAdRequest,android.os.Bundle); }', but not the descriptor class 'com.google.android.gms.ads.mediation.MediationAdRequest'
Note: the configuration keeps the entry point 'com.google.android.gms.ads.mediation.MediationInterstitialAdapter { void requestInterstitialAd(android.content.Context,com.google.android.gms.ads.mediation.MediationInterstitialListener,android.os.Bundle,com.google.android.gms.ads.mediation.MediationAdRequest,android.os.Bundle); }', but not the descriptor class 'com.google.android.gms.ads.mediation.MediationInterstitialListener'
Note: the configuration keeps the entry point 'com.google.android.gms.ads.mediation.MediationInterstitialAdapter { void requestInterstitialAd(android.content.Context,com.google.android.gms.ads.mediation.MediationInterstitialListener,android.os.Bundle,com.google.android.gms.ads.mediation.MediationAdRequest,android.os.Bundle); }', but not the descriptor class 'com.google.android.gms.ads.mediation.MediationAdRequest'
Note: the configuration keeps the entry point 'com.google.android.gms.ads.mediation.MediationNativeAdapter { void requestNativeAd(android.content.Context,com.google.android.gms.ads.mediation.MediationNativeListener,android.os.Bundle,com.google.android.gms.ads.mediation.NativeMediationAdRequest,android.os.Bundle); }', but not the descriptor class 'com.google.android.gms.ads.mediation.MediationNativeListener'
Note: the configuration keeps the entry point 'com.google.android.gms.ads.mediation.MediationNativeAdapter { void requestNativeAd(android.content.Context,com.google.android.gms.ads.mediation.MediationNativeListener,android.os.Bundle,com.google.android.gms.ads.mediation.NativeMediationAdRequest,android.os.Bundle); }', but not the descriptor class 'com.google.android.gms.ads.mediation.NativeMediationAdRequest'
Note: the configuration keeps the entry point 'com.google.android.gms.ads.mediation.customevent.CustomEventAdapter { void requestBannerAd(android.content.Context,com.google.android.gms.ads.mediation.MediationBannerListener,android.os.Bundle,com.google.android.gms.ads.AdSize,com.google.android.gms.ads.mediation.MediationAdRequest,android.os.Bundle); }', but not the descriptor class 'com.google.android.gms.ads.mediation.MediationBannerListener'
Note: the configuration keeps the entry point 'com.google.android.gms.ads.mediation.customevent.CustomEventAdapter { void requestBannerAd(android.content.Context,com.google.android.gms.ads.mediation.MediationBannerListener,android.os.Bundle,com.google.android.gms.ads.AdSize,com.google.android.gms.ads.mediation.MediationAdRequest,android.os.Bundle); }', but not the descriptor class 'com.google.android.gms.ads.AdSize'
Note: the configuration keeps the entry point 'com.google.android.gms.ads.mediation.customevent.CustomEventAdapter { void requestBannerAd(android.content.Context,com.google.android.gms.ads.mediation.MediationBannerListener,android.os.Bundle,com.google.android.gms.ads.AdSize,com.google.android.gms.ads.mediation.MediationAdRequest,android.os.Bundle); }', but not the descriptor class 'com.google.android.gms.ads.mediation.MediationAdRequest'
Note: the configuration keeps the entry point 'com.google.android.gms.ads.mediation.customevent.CustomEventAdapter { void requestInterstitialAd(android.content.Context,com.google.android.gms.ads.mediation.MediationInterstitialListener,android.os.Bundle,com.google.android.gms.ads.mediation.MediationAdRequest,android.os.Bundle); }', but not the descriptor class 'com.google.android.gms.ads.mediation.MediationInterstitialListener'
Note: the configuration keeps the entry point 'com.google.android.gms.ads.mediation.customevent.CustomEventAdapter { void requestInterstitialAd(android.content.Context,com.google.android.gms.ads.mediation.MediationInterstitialListener,android.os.Bundle,com.google.android.gms.ads.mediation.MediationAdRequest,android.os.Bundle); }', but not the descriptor class 'com.google.android.gms.ads.mediation.MediationAdRequest'
Note: the configuration keeps the entry point 'com.google.android.gms.ads.mediation.customevent.CustomEventAdapter { void requestNativeAd(android.content.Context,com.google.android.gms.ads.mediation.MediationNativeListener,android.os.Bundle,com.google.android.gms.ads.mediation.NativeMediationAdRequest,android.os.Bundle); }', but not the descriptor class 'com.google.android.gms.ads.mediation.MediationNativeListener'
Note: the configuration keeps the entry point 'com.google.android.gms.ads.mediation.customevent.CustomEventAdapter { void requestNativeAd(android.content.Context,com.google.android.gms.ads.mediation.MediationNativeListener,android.os.Bundle,com.google.android.gms.ads.mediation.NativeMediationAdRequest,android.os.Bundle); }', but not the descriptor class 'com.google.android.gms.ads.mediation.NativeMediationAdRequest'
Note: the configuration keeps the entry point 'com.google.android.gms.ads.mediation.customevent.CustomEventBanner { void requestBannerAd(android.content.Context,com.google.android.gms.ads.mediation.customevent.CustomEventBannerListener,java.lang.String,com.google.android.gms.ads.AdSize,com.google.android.gms.ads.mediation.MediationAdRequest,android.os.Bundle); }', but not the descriptor class 'com.google.android.gms.ads.mediation.customevent.CustomEventBannerListener'
Note: the configuration keeps the entry point 'com.google.android.gms.ads.mediation.customevent.CustomEventBanner { void requestBannerAd(android.content.Context,com.google.android.gms.ads.mediation.customevent.CustomEventBannerListener,java.lang.String,com.google.android.gms.ads.AdSize,com.google.android.gms.ads.mediation.MediationAdRequest,android.os.Bundle); }', but not the descriptor class 'com.google.android.gms.ads.AdSize'
Note: the configuration keeps the entry point 'com.google.android.gms.ads.mediation.customevent.CustomEventBanner { void requestBannerAd(android.content.Context,com.google.android.gms.ads.mediation.customevent.CustomEventBannerListener,java.lang.String,com.google.android.gms.ads.AdSize,com.google.android.gms.ads.mediation.MediationAdRequest,android.os.Bundle); }', but not the descriptor class 'com.google.android.gms.ads.mediation.MediationAdRequest'
Note: the configuration keeps the entry point 'com.google.android.gms.ads.mediation.customevent.CustomEventInterstitial { void requestInterstitialAd(android.content.Context,com.google.android.gms.ads.mediation.customevent.CustomEventInterstitialListener,java.lang.String,com.google.android.gms.ads.mediation.MediationAdRequest,android.os.Bundle); }', but not the descriptor class 'com.google.android.gms.ads.mediation.customevent.CustomEventInterstitialListener'
Note: the configuration keeps the entry point 'com.google.android.gms.ads.mediation.customevent.CustomEventInterstitial { void requestInterstitialAd(android.content.Context,com.google.android.gms.ads.mediation.customevent.CustomEventInterstitialListener,java.lang.String,com.google.android.gms.ads.mediation.MediationAdRequest,android.os.Bundle); }', but not the descriptor class 'com.google.android.gms.ads.mediation.MediationAdRequest'
Note: the configuration keeps the entry point 'com.google.android.gms.ads.mediation.customevent.CustomEventNative { void requestNativeAd(android.content.Context,com.google.android.gms.ads.mediation.customevent.CustomEventNativeListener,java.lang.String,com.google.android.gms.ads.mediation.NativeMediationAdRequest,android.os.Bundle); }', but not the descriptor class 'com.google.android.gms.ads.mediation.customevent.CustomEventNativeListener'
Note: the configuration keeps the entry point 'com.google.android.gms.ads.mediation.customevent.CustomEventNative { void requestNativeAd(android.content.Context,com.google.android.gms.ads.mediation.customevent.CustomEventNativeListener,java.lang.String,com.google.android.gms.ads.mediation.NativeMediationAdRequest,android.os.Bundle); }', but not the descriptor class 'com.google.android.gms.ads.mediation.NativeMediationAdRequest'
Note: the configuration keeps the entry point 'com.google.android.gms.ads.reward.mediation.InitializableMediationRewardedVideoAdAdapter { void initialize(android.content.Context,com.google.android.gms.ads.reward.mediation.MediationRewardedVideoAdListener,java.util.List); }', but not the descriptor class 'com.google.android.gms.ads.reward.mediation.MediationRewardedVideoAdListener'
Note: the configuration keeps the entry point 'com.google.android.gms.ads.reward.mediation.MediationRewardedVideoAdAdapter { void initialize(android.content.Context,com.google.android.gms.ads.mediation.MediationAdRequest,java.lang.String,com.google.android.gms.ads.reward.mediation.MediationRewardedVideoAdListener,android.os.Bundle,android.os.Bundle); }', but not the descriptor class 'com.google.android.gms.ads.mediation.MediationAdRequest'
Note: the configuration keeps the entry point 'com.google.android.gms.ads.reward.mediation.MediationRewardedVideoAdAdapter { void initialize(android.content.Context,com.google.android.gms.ads.mediation.MediationAdRequest,java.lang.String,com.google.android.gms.ads.reward.mediation.MediationRewardedVideoAdListener,android.os.Bundle,android.os.Bundle); }', but not the descriptor class 'com.google.android.gms.ads.reward.mediation.MediationRewardedVideoAdListener'
Note: the configuration keeps the entry point 'com.google.android.gms.ads.reward.mediation.MediationRewardedVideoAdAdapter { void loadAd(com.google.android.gms.ads.mediation.MediationAdRequest,android.os.Bundle,android.os.Bundle); }', but not the descriptor class 'com.google.android.gms.ads.mediation.MediationAdRequest'
Note: the configuration keeps the entry point 'com.google.android.gms.ads.search.SearchAdView { void setAdListener(com.google.android.gms.ads.AdListener); }', but not the descriptor class 'com.google.android.gms.ads.AdListener'
Note: the configuration keeps the entry point 'com.google.android.gms.ads.search.SearchAdView { void setAdSize(com.google.android.gms.ads.AdSize); }', but not the descriptor class 'com.google.android.gms.ads.AdSize'
Note: the configuration keeps the entry point 'com.google.android.gms.common.api.internal.LifecycleCallback { com.google.android.gms.common.api.internal.LifecycleFragment getChimeraLifecycleFragmentImpl(com.google.android.gms.common.api.internal.LifecycleActivity); }', but not the descriptor class 'com.google.android.gms.common.api.internal.LifecycleActivity'
Note: the configuration keeps the entry point 'com.google.android.gms.internal.ads.zzabb { void requestInterstitialAd(android.content.Context,com.google.android.gms.ads.mediation.MediationInterstitialListener,android.os.Bundle,com.google.android.gms.ads.mediation.MediationAdRequest,android.os.Bundle); }', but not the descriptor class 'com.google.android.gms.ads.mediation.MediationInterstitialListener'
Note: the configuration keeps the entry point 'com.google.android.gms.internal.ads.zzabb { void requestInterstitialAd(android.content.Context,com.google.android.gms.ads.mediation.MediationInterstitialListener,android.os.Bundle,com.google.android.gms.ads.mediation.MediationAdRequest,android.os.Bundle); }', but not the descriptor class 'com.google.android.gms.ads.mediation.MediationAdRequest'
Note: the configuration keeps the entry point 'com.google.android.youtube.player.YouTubePlayerView { YouTubePlayerView(android.content.Context,android.util.AttributeSet,int,com.google.android.youtube.player.YouTubePlayerView$b); }', but not the descriptor class 'com.google.android.youtube.player.YouTubePlayerView$b'
Note: the configuration keeps the entry point 'com.google.firebase.abt.FirebaseABTesting { boolean zza(com.google.android.gms.internal.firebase_abt.zzo); }', but not the descriptor class 'com.google.android.gms.internal.firebase_abt.zzo'
Note: the configuration keeps the entry point 'com.google.firebase.abt.FirebaseABTesting { com.google.android.gms.measurement.AppMeasurement$ConditionalUserProperty zzb(com.google.android.gms.internal.firebase_abt.zzo); }', but not the descriptor class 'com.google.android.gms.internal.firebase_abt.zzo'
Note: the configuration keeps the entry point 'com.google.firebase.analytics.FirebaseAnalytics { FirebaseAnalytics(com.google.android.gms.measurement.internal.zzbt); }', but not the descriptor class 'com.google.android.gms.measurement.internal.zzbt'
Note: the configuration keeps the entry point 'com.google.firebase.iid.FirebaseInstanceId { java.lang.Object zza(com.google.android.gms.tasks.Task); }', but not the descriptor class 'com.google.android.gms.tasks.Task'
Note: the configuration keeps the entry point 'com.google.firebase.iid.FirebaseInstanceId { void zza(java.lang.String,java.lang.String,com.google.android.gms.tasks.TaskCompletionSource,java.lang.String); }', but not the descriptor class 'com.google.android.gms.tasks.TaskCompletionSource'
Note: the configuration keeps the entry point 'com.google.firebase.iid.FirebaseInstanceId { void zza(java.lang.String,java.lang.String,com.google.android.gms.tasks.TaskCompletionSource,java.lang.String,com.google.android.gms.tasks.Task); }', but not the descriptor class 'com.google.android.gms.tasks.TaskCompletionSource'
Note: the configuration keeps the entry point 'com.google.firebase.iid.FirebaseInstanceId { void zza(java.lang.String,java.lang.String,com.google.android.gms.tasks.TaskCompletionSource,java.lang.String,com.google.android.gms.tasks.Task); }', but not the descriptor class 'com.google.android.gms.tasks.Task'
Note: the configuration keeps the entry point 'com.google.firebase.iid.zzaq { com.google.android.gms.tasks.Task zza(android.util.Pair,com.google.android.gms.tasks.Task); }', but not the descriptor class 'com.google.android.gms.tasks.Task'
Note: the configuration keeps the entry point 'com.google.firebase.iid.zzar { java.lang.Object then(com.google.android.gms.tasks.Task); }', but not the descriptor class 'com.google.android.gms.tasks.Task'
Note: the configuration keeps the entry point 'com.google.firebase.iid.zzn { zzn(com.google.firebase.iid.FirebaseInstanceId,java.lang.String,java.lang.String,com.google.android.gms.tasks.TaskCompletionSource,java.lang.String); }', but not the descriptor class 'com.google.android.gms.tasks.TaskCompletionSource'
Note: the configuration keeps the entry point 'com.google.firebase.iid.zzp { zzp(com.google.firebase.iid.FirebaseInstanceId,java.lang.String,java.lang.String,com.google.android.gms.tasks.TaskCompletionSource,java.lang.String); }', but not the descriptor class 'com.google.android.gms.tasks.TaskCompletionSource'
Note: the configuration keeps the entry point 'com.google.firebase.iid.zzp { void onComplete(com.google.android.gms.tasks.Task); }', but not the descriptor class 'com.google.android.gms.tasks.Task'
Note: the configuration keeps the entry point 'com.google.firebase.iid.zzr { com.google.android.gms.tasks.Task zzb(com.google.android.gms.tasks.Task); }', but not the descriptor class 'com.google.android.gms.tasks.Task'
Note: the configuration keeps the entry point 'com.google.firebase.iid.zzr { com.google.android.gms.tasks.Task zzc(com.google.android.gms.tasks.Task); }', but not the descriptor class 'com.google.android.gms.tasks.Task'
Note: the configuration keeps the entry point 'com.google.firebase.iid.zzr { void zza(android.os.Bundle,com.google.android.gms.tasks.TaskCompletionSource); }', but not the descriptor class 'com.google.android.gms.tasks.TaskCompletionSource'
Note: the configuration keeps the entry point 'com.google.firebase.iid.zzs { zzs(com.google.firebase.iid.zzr,android.os.Bundle,com.google.android.gms.tasks.TaskCompletionSource); }', but not the descriptor class 'com.google.android.gms.tasks.TaskCompletionSource'
Note: the configuration keeps the entry point 'com.google.firebase.iid.zzt { java.lang.Object then(com.google.android.gms.tasks.Task); }', but not the descriptor class 'com.google.android.gms.tasks.Task'
Note: the configuration keeps the entry point 'com.google.firebase.iid.zzu { java.lang.Object then(com.google.android.gms.tasks.Task); }', but not the descriptor class 'com.google.android.gms.tasks.Task'
Note: the configuration keeps the entry point 'com.google.firebase.remoteconfig.FirebaseRemoteConfig { FirebaseRemoteConfig(android.content.Context,com.google.android.gms.internal.config.zzao,com.google.android.gms.internal.config.zzao,com.google.android.gms.internal.config.zzao,com.google.android.gms.internal.config.zzar); }', but not the descriptor class 'com.google.android.gms.internal.config.zzao'
Note: the configuration keeps the entry point 'com.google.firebase.remoteconfig.FirebaseRemoteConfig { FirebaseRemoteConfig(android.content.Context,com.google.android.gms.internal.config.zzao,com.google.android.gms.internal.config.zzao,com.google.android.gms.internal.config.zzao,com.google.android.gms.internal.config.zzar); }', but not the descriptor class 'com.google.android.gms.internal.config.zzao'
Note: the configuration keeps the entry point 'com.google.firebase.remoteconfig.FirebaseRemoteConfig { FirebaseRemoteConfig(android.content.Context,com.google.android.gms.internal.config.zzao,com.google.android.gms.internal.config.zzao,com.google.android.gms.internal.config.zzao,com.google.android.gms.internal.config.zzar); }', but not the descriptor class 'com.google.android.gms.internal.config.zzao'
Note: the configuration keeps the entry point 'com.google.firebase.remoteconfig.FirebaseRemoteConfig { FirebaseRemoteConfig(android.content.Context,com.google.android.gms.internal.config.zzao,com.google.android.gms.internal.config.zzao,com.google.android.gms.internal.config.zzao,com.google.android.gms.internal.config.zzar); }', but not the descriptor class 'com.google.android.gms.internal.config.zzar'
Note: the configuration keeps the entry point 'com.google.firebase.remoteconfig.FirebaseRemoteConfig { com.google.android.gms.internal.config.zzao zza(com.google.android.gms.internal.config.zzas); }', but not the descriptor class 'com.google.android.gms.internal.config.zzas'
Note: the configuration keeps the entry point 'com.google.firebase.remoteconfig.FirebaseRemoteConfig { com.google.android.gms.tasks.Task zza(long,com.google.android.gms.internal.config.zzv); }', but not the descriptor class 'com.google.android.gms.internal.config.zzv'
Note: the configuration keeps the entry point 'com.google.firebase.remoteconfig.FirebaseRemoteConfig { void zza(com.google.android.gms.tasks.TaskCompletionSource,com.google.android.gms.internal.config.zzk); }', but not the descriptor class 'com.google.android.gms.tasks.TaskCompletionSource'
Note: the configuration keeps the entry point 'com.google.firebase.remoteconfig.FirebaseRemoteConfig { void zza(com.google.android.gms.tasks.TaskCompletionSource,com.google.android.gms.internal.config.zzk); }', but not the descriptor class 'com.google.android.gms.internal.config.zzk'
Note: the configuration keeps the entry point 'com.google.firebase.remoteconfig.FirebaseRemoteConfig { void zza(com.google.android.gms.tasks.TaskCompletionSource,com.google.android.gms.common.api.Status); }', but not the descriptor class 'com.google.android.gms.tasks.TaskCompletionSource'
Note: the configuration keeps the entry point 'com.google.firebase.remoteconfig.zza { zza(com.google.firebase.remoteconfig.FirebaseRemoteConfig,com.google.android.gms.tasks.TaskCompletionSource); }', but not the descriptor class 'com.google.android.gms.tasks.TaskCompletionSource'
Note: the configuration keeps the entry point 'com.google.firebase.remoteconfig.zza { void onResult(com.google.android.gms.common.api.Result); }', but not the descriptor class 'com.google.android.gms.common.api.Result'
Note: the configuration keeps the entry point 'io.flutter.plugins.firebase.firebaseremoteconfig.FirebaseRemoteConfigPlugin$1 { void onComplete(com.google.android.gms.tasks.Task); }', but not the descriptor class 'com.google.android.gms.tasks.Task'
Note: there were 4 references to unknown classes.
You should check your configuration for typos.
(http://proguard.sourceforge.net/manual/troubleshooting.html#unknownclass)
Note: there were 1 references to unknown class members.
You should check your configuration for typos.
Note: there were 149 unkept descriptor classes in kept class members.
You should consider explicitly keeping the mentioned classes
(using '-keep').
(http://proguard.sourceforge.net/manual/troubleshooting.html#descriptorclass)
Note: there were 31 unresolved dynamic references to classes or interfaces.
You should check if you need to specify additional program jars.
(http://proguard.sourceforge.net/manual/troubleshooting.html#dynamicalclass)
Warning: there were 12 unresolved references to classes or interfaces.
You may need to add missing library jars or update their versions.
If your code works fine without the missing classes, you can suppress
the warnings with '-dontwarn' options.
(http://proguard.sourceforge.net/manual/troubleshooting.html#unresolvedclass)
Warning: there were 2 unresolved references to library class members.
You probably need to update the library versions.
(http://proguard.sourceforge.net/manual/troubleshooting.html#unresolvedlibraryclassmember)
Running Gradle task 'assembleRelease'...
Running Gradle task 'assembleRelease'... Done 122,1s (!)
*******************************************************************************************
The Gradle failure may have been because of AndroidX incompatibilities in this Flutter app.
See https://goo.gl/CP92wY for more information on the problem and how to fix it.
*******************************************************************************************
flutter doctor
[✓] Flutter (Channel stable, v1.9.1+hotfix.2, on Mac OS X 10.13.6 17G6030, locale fr-FR)
[✓] Android toolchain - develop for Android devices (Android SDK version 28.0.3)
[✓] Xcode - develop for iOS and macOS (Xcode 10.1)
[✓] Android Studio (version 3.5)
[✓] Connected device (2 available)
Never touch the proguard conf for that project yet too
thanks
I believe the main issue is with flutter firebase plugins. I was trying to build release version with code minification and obfuscation. Setting minifyenabled false in gradle OR ignore warnings and keep all public and private classes in proguard is not an ideal solution if code minification and obfuscation is needed.
When i build without firebase plugins, it works just fine. An official proguard rules for flutter firebase plugins would be nice.
Reacted by beginnercoder, Terry K, Naim Abou Darwish, Swaminathan V, Szymon Acedański, Adibta Triantama, Mike Hughes, Raveesh Agarwal, Jinal, KuoyHuot and 3 more
Reacted by Naim Abou Darwish, Mike Hughes, KuoyHuot and Dmytro Polishenko
Reacted by Naim Abou Darwish, KuoyHuot and Dmytro Polishenko
It would be nice to get some movement on this. I'm running into issues where my app is unable to start in release mode because Firebase Core is unable to launch. I've traced the issue down to not having the right proguard retention rules (disabling modification allows the app to launch correctly).
This thread has been automatically locked since there has not been any recent activity after it was closed. If you are still experiencing a similar issue, please open a new bug, including the output of flutter doctor -v and a minimal reproduction of the issue.
Activity
[-][Doccumentation] Proguard Rules for firebase products[/-][+][Doccumentation] Proguard Rules for firebase products and other plugins as needed[/+][-][Doccumentation] Proguard Rules for firebase products and other plugins as needed[/-][+][Documentation] Proguard Rules for firebase products and other plugins as needed[/+]jaumard commentedon Sep 2, 2019
Is there somewhere where we can find those rules ? I've added firebase_auth (but was already using analytics, messaging, in-app) and my app doesn't compile in release mode anymore with some huge logs:
Never touch the proguard conf for that project yet
eseidelGoogle commentedon Sep 6, 2019
Related in part to #27371
I wonder what our story is for handling proguard with plugins is? @blasten or @collinjackson might know.
duduf15 commentedon Sep 17, 2019
Same problem for, all was working with firebase_analytics and now with firebase_remote_config and my app doesn't compile with theses errors
flutter doctor
Never touch the proguard conf for that project yet too
thanks
alanpachuau commentedon Dec 5, 2019
I believe the main issue is with flutter firebase plugins. I was trying to build release version with code minification and obfuscation. Setting minifyenabled false in gradle OR ignore warnings and keep all public and private classes in proguard is not an ideal solution if code minification and obfuscation is needed.
When i build without firebase plugins, it works just fine. An official proguard rules for flutter firebase plugins would be nice.
nishtahir commentedon Dec 27, 2020
It would be nice to get some movement on this. I'm running into issues where my app is unable to start in release mode because Firebase Core is unable to launch. I've traced the issue down to not having the right proguard retention rules (disabling modification allows the app to launch correctly).
Here's the stacktrace for reference
stuartmorgan-g commentedon Mar 11, 2023
Closing as obsolete since the Firebase plugins are no longer part of this repository.
github-actions commentedon Mar 25, 2023
This thread has been automatically locked since there has not been any recent activity after it was closed. If you are still experiencing a similar issue, please open a new bug, including the output of
flutter doctor -vand a minimal reproduction of the issue.