【问题标题】:Amazon Device Messeging (ADM) 1.1.0 IncompatibleClassChangeError ExceptionAmazon Device Messeging (ADM) 1.1.0 IncompatibleClassChangeError 异常
【发布时间】:2020-02-20 16:48:20
【问题描述】:

在我将 1.1.0 adm 应用到我们的应用程序后,一些设备因“java.lang.IncompatibleClassChangeError”异常而崩溃

我无法在某些 Fire 设备上重现此错误,

但崩溃报告是这样说的。

我应用了手册中的 gradle 设置。 所以adm jar没有包含在apk中,我想是的。

compileOnly files('libs/amazon-device-messaging-1.1.0.jar')

并非所有设备,但特别是 Fire 7 2019、Fire hd 8 2018 是主要的崩溃设备。

这是详细的崩溃日志

Fatal Exception: java.lang.IncompatibleClassChangeError: Structural change of com.amazon.device.messaging.ADMMessageReceiver is hazardous (/data/app/com.xxxx-1/oat/arm/base.odex at compile time, /system/priv-app/DeviceMessagingAndroidSDK/oat/arm/DeviceMessagingAndroidSDK.odex at runtime): Instance field count off: 0 vs 3

Lcom/amazon/device/messaging/ADMMessageReceiver; (Compile time):

Static fields:

Instance fields:

Direct methods:

<init>()V

<init>(Ljava/lang/Class;)V

<init>(Ljava/lang/Class;I)V

Virtual methods:

onReceive(Landroid/content/Context;Landroid/content/Intent;)V

registerIntentServiceClass(Ljava/lang/Class;)V

registerJobServiceClass(Ljava/lang/Class;I)V

Lcom/amazon/device/messaging/ADMMessageReceiver; (Runtime):

Static fields:

Instance fields:

I mJobId

Z mServiceClassIsJob

Ljava/lang/String; mServiceClassName

Direct methods:

<init>()V

<init>(Ljava/lang/Class;)V

<init>(Ljava/lang/Class;I)V

Virtual methods:

onReceive(Landroid/content/Context;Landroid/content/Intent;)V

registerIntentServiceClass(Ljava/lang/Class;)V

registerJobServiceClass(Ljava/lang/Class;I)V

(declaration of 'com.xxxx.adm.ADMReceiver' appears in /data/app/com.xxxx-1/base.apk)


【问题讨论】:

    标签: sdk amazon kindle-fire kindle


    【解决方案1】:

    我们已经解决了这个问题。

    这是因为在 build.gradle 中遗漏了配置。

    compile fileTree(include: ['*.jar'], dir: 'libs')
    ...
    compileOnly files('libs/amazon-device-messaging-1.1.0.jar')
    

    我们为 ADM 使用了相同的 libs 目录, 所以 stubed jar 包含在游戏 apk 中。

    配置compile fileTree(include: ['*.jar'], dir: 'libs') 导致了该问题。

    我们将 adm jar 的目录从 libs 更改为 libs2,这样就解决了问题。

    【讨论】:

      猜你喜欢
      • 2016-02-21
      • 2014-10-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-01-18
      • 2014-03-29
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多