The “local module descriptor class not found” message is Google’s way of saying “We didn’t bundle this module locally, but we’ll fetch it from the system.” That’s intentional and by design.
Add the standard Google Play Services ProGuard rules (usually automatic with com.google.gms:google-services plugin, but check manually):
-keep class com.google.android.gms.** *; -dontwarn com.google.android.gms.** If you only included play-services-base but need play-services-auth or play-services-location , some modules won’t load.
Let’s break down what this error actually means, why it’s usually harmless, and when you should actually worry about it. At its core, this log message comes from Dynamite Module Loading – Google’s internal system for dynamically loading code from the Google Play Services APK into your app at runtime. The “local module descriptor class not found” message
local module descriptor class for com.google.android.gms.google certificates not found it means the runtime attempted to locate a local (bundled) version of a specific module ( google certificates related) but failed. It then tries to load the version from the Google Play Services APK. Is This an Error or a Warning? In most cases, this is just verbose logging, not a crash.
implementation 'com.google.android.gms:play-services-auth:21.0.0' If the message is just cluttering your logcat and you want to hide it, you can filter it out using:
If you’ve ever been greeted by a cryptic log message that says something like: local module descriptor class for com.google.android.gms.google certificates not found you’re not alone. This error usually appears when working with Google Play Services, Firebase, or any SDK that relies on Google’s proprietary code running on the Google Play Services APK. At its core, this log message comes from
Add the specific required dependency:
Have you run into this error causing an actual crash? Let me know in the comments – I’ve debugged a few edge cases involving certificate validation and would love to help. Happy (and less confusing) debugging!
adb logcat | grep -v "local module descriptor class" Or, in Android Studio Logcat, add this exclusion: Is This an Error or a Warning
Failed to load module: com.google.android.gms.googlecertificates Ensure the device has Google Play Services installed and updated. 2. ProGuard/R8 is stripping required classes If you see this error accompanied by a crash during Google Sign-In or SafetyNet, your obfuscation rules might be too aggressive.
| Situation | Action | |-----------|--------| | App runs fine, no crash | ✅ Ignore | | App crashes with ClassNotFoundException for a Google API | ❌ Check GMS version & dependencies | | Emulator or device without Play Services | ❌ Install GMS or switch to a proper emulator image | | Release build crash (but debug works) | ❌ Check ProGuard/R8 rules |
Google Play Services is not a static library you fully compile into your APK. Instead, your app communicates with a “stub” that asks the Google Play Services APK (installed on the device) to provide the actual implementation.