You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

亚马逊应用商店提交遭拒求助:排查信息获取及问题解决

Fixing 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:

  1. You're calling ADMManifest methods (like checkManifestAuth()) in your release build (the crash trace links to SlovaApplication.c(SlovaApplication.java:1)).
  2. You've marked the ADM SDK as compileOnly, so debug-specific classes from the ADM jar aren't packaged into your release APK.
  3. 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 libs folder, 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:

  1. Check if the com.amazon.device.messaging.development package exists in the APK. If it does, you still have hidden debug code references to clean up.
  2. 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:

  1. Generate release builds for your Amazon+English/German flavors.
  2. Sideload the APK onto a Fire device (or use Amazon's App Testing Service) to confirm it launches without crashing.
  3. Resubmit to the Amazon Appstore – the crash should be resolved, and your app should pass review.

内容的提问来源于stack exchange,提问作者Alexander Farber

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.09 00:17:48