亚马逊应用商店提交遭拒求助:排查信息获取及问题解决
NoClassDefFoundError for com.amazon.device.messaging.development.ADMManifest on Amazon Fire Devices Let's break down your issue and fix it step by step:
Root Cause
The crash log clearly points to a missing ADMManifest class, which is part of ADM's development/debug-only library. Here's why this is happening:
- You're calling
ADMManifestmethods (likecheckManifestAuth()) in your release build (the crash trace links toSlovaApplication.c(SlovaApplication.java:1)). - You've marked the ADM SDK as
compileOnly, so debug-specific classes from the ADM jar aren't packaged into your release APK. - Amazon Fire devices only include the production ADM system library (no debug classes), so the app can't locate the class at runtime.
Your Russian flavor works because it doesn't include this debug code, while your English/German flavors do – that's why only those versions are failing review.
Step 1: Remove Debug-Only ADM Code
First, find where you're referencing ADMManifest in your code. Wrap this code in a debug-only check so it never runs in release builds:
// Only execute this in debug mode for local testing if (BuildConfig.DEBUG) { com.amazon.device.messaging.development.ADMManifest.checkManifestAuth(this); }
This ensures the debug-specific class is never called in production builds, eliminating the runtime error entirely.
Step 2: Fix ADM Dependency Configuration
Your current compileOnly setup for ADM is correct for production (Fire devices provide the ADM system library natively). But double-check:
- You're using the official production ADM SDK in your
libsfolder, not a debug-only variant. - No other parts of your code reference classes under
com.amazon.device.messaging.development– these are strictly for local testing and should never be in release code.
Step 3: Refine ProGuard Rules
Your existing ProGuard rules for ADM are mostly correct, but add an explicit rule to avoid warnings about debug classes:
# Keep core ADM classes (already present, but confirm) -keep class com.amazon.device.messaging.** { *; } # Suppress warnings for debug-only ADM classes we don't use in release -dontwarn com.amazon.device.messaging.development.**
Step 4: Validate Your Release APK
Use Android Studio's APK Analyzer to inspect your amazon-de-release.apk and amazon-en-release.apk:
- Check if the
com.amazon.device.messaging.developmentpackage exists in the APK. If it does, you still have hidden debug code references to clean up. - Confirm core ADM classes (like
ADM,ADMMessageReceiver) aren't being stripped by ProGuard – your existing rules should handle this, but it's good to verify.
Step 5: Retest and Resubmit
Once you've made these changes:
- Generate release builds for your Amazon+English/German flavors.
- Sideload the APK onto a Fire device (or use Amazon's App Testing Service) to confirm it launches without crashing.
- Resubmit to the Amazon Appstore – the crash should be resolved, and your app should pass review.
内容的提问来源于stack exchange,提问作者Alexander Farber

