Gradle Android Studio运行时错误存根!在com.amazon.device.messaging.ADMMessageReceiver上;初始化>;()

Gradle Android Studio运行时错误存根!在com.amazon.device.messaging.ADMMessageReceiver上;初始化>;(),gradle,android-studio,amazon,kindle,amazon-device-messaging,Gradle,Android Studio,Amazon,Kindle,Amazon Device Messaging,当我构建Android应用程序的亚马逊(Kindle)风格时,我遇到以下运行时错误: Caused by: java.lang.RuntimeException: Stub! at com.amazon.device.messaging.ADMMessageReceiver.<init>() 原因:java.lang.RuntimeException:存根! 位于com.amazon.device.messaging.ADMMessageReceiver.() 我需要本地amaz

当我构建Android应用程序的亚马逊(Kindle)风格时,我遇到以下运行时错误:

Caused by: java.lang.RuntimeException: Stub!
at com.amazon.device.messaging.ADMMessageReceiver.<init>()
原因:java.lang.RuntimeException:存根!
位于com.amazon.device.messaging.ADMMessageReceiver.()

我需要本地amazon-device-messaging.jar文件来编译我的应用程序,但是我不需要在运行时包含它,因为amazon设备将具有必要的类和方法。如何更新我的Android Studio build.gradle文件来实现这一点?

为了解决这个问题,我使用了
提供的
依赖类型

在我的项目模块build.gradle文件中,就在我的
依赖项
结束之前,我包括以下内容:

configurations {
    provided
}

sourceSets {
    main {
        compileClasspath += configurations.provided
    }
}
dependencies {
    provided files('libs/amazon-device-messaging-1.0.1.jar')
}
然后,在我的依赖项闭包中,我包括以下内容:

configurations {
    provided
}

sourceSets {
    main {
        compileClasspath += configurations.provided
    }
}
dependencies {
    provided files('libs/amazon-device-messaging-1.0.1.jar')
}

这确保了.jar只用于编译时而不是运行时。我是Android Studio的新手,这让我花了一段时间才弄明白;希望这也能帮助您切换到Android Studio。

我也遇到了这个问题。将Amazon设备消息传递jar添加为库时,Android Studio会自动生成

dependencies {
    compile files('libs/amazon-device-messaging-1.0.1.jar')
}
我只需要把它换成

dependencies {
    provided files('libs/amazon-device-messaging-1.0.1.jar')
}
这对我来说是个好办法。我会投票支持你的答案,@Clu,但我的声望不够高

  • 在Maven本地存储库中添加ADM jar
  • 命令:

                mvn install:install-file "-Dfile=amazon-device-messaging-1.0.1.jar" "-DgroupId=com.amazon.device.messaging" "-DartifactId=amazondevicemessaging" "-Dversion=1.0.1" "-Dpackaging=jar"
    
  • 包括本地maven存储库作为项目依赖项:
  • 在主Gradle构建脚本中添加“mavenLocal()”:

                allprojects {
                repositories {
                                mavenCentral()
                                mavenLocal()
                 }
    
  • 链接ADM项目中的Maven工件
  • 添加以下行ADMWrapperLib渐变脚本(:)


    谢谢也许我不需要额外的配置细节。我将尝试删除它,看看它是否仍然有效。看起来您的简单答案是正确的方法,谢谢!我在android库项目中有ADM jar,尽管我已经提到了android库项目的build.grade文件中提供的ADM jar的依赖关系。我仍然得到这个错误。有什么帮助吗?@sanath01你有没有想过。这对我也不起作用?如果库和对库的调用在不同的包中,那么“提供的”将被忽略,而存根库将被编译到APK中。这可以通过将库放入Maven repo中来解决。