Android Studio 运行时错误存根!在 com.amazon.device.messaging.ADMMessageReceiver.<init>()

Posted

技术标签:

【中文标题】Android Studio 运行时错误存根!在 com.amazon.device.messaging.ADMMessageReceiver.<init>()【英文标题】:Android Studio runtime error Stub! at com.amazon.device.messaging.ADMMessageReceiver.<init>() 【发布时间】:2014-08-24 23:40:31 【问题描述】:

当我构建我的 android 应用程序的 Amazon (Kindle) 风格时,我遇到了这个运行时错误:

Caused by: java.lang.RuntimeException: Stub!
at com.amazon.device.messaging.ADMMessageReceiver.<init>()

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

【问题讨论】:

【参考方案1】:

我也遇到了这个问题。将 Amazon Device Messaging 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,我会为你的答案投票,但我的声望不够高。

【讨论】:

谢谢!也许我不需要额外的配置细节。我会尝试删除它,看看它是否仍然有效。 看起来您的简单答案是正确的方法,谢谢! 我在 android-library 项目中有 ADM jar,尽管我已经提到了在 android-library 项目的 build.grade 文件中提供的 ADM jar 的依赖关系。它仍然收到此错误。有什么帮助吗? @sanath01 你有没有想过这个问题。这对我也不起作用? 对我来说都不管用!你找到什么了吗?【参考方案2】:

为了解决这个问题,我使用了provided 类型的依赖项。

在我的项目模块 build.gradle 文件中,就在我的 dependencies 关闭之前,我包含以下内容:

configurations 
    provided


sourceSets 
    main 
        compileClasspath += configurations.provided
    

然后,在我的依赖项闭包中,我包含了以下内容:

dependencies 
    provided files('libs/amazon-device-messaging-1.0.1.jar')

这确保了 .jar 仅用于编译时而非运行时。我对 Android Studio 很陌生,这花了我一段时间才弄清楚;希望这也能帮助您切换到 Android Studio。

【讨论】:

如果库和对库的调用在不同的包中,'provided' 将被忽略,而存根的库将被编译到 APK 中。这可以通过将库放在 Maven 存储库中来解决。【参考方案3】:
    在 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 Gradle 脚本 (::)。

            provided 'com.amazon.device.messaging:amazondevicemessaging:1.0.1'

【讨论】:

以上是关于Android Studio 运行时错误存根!在 com.amazon.device.messaging.ADMMessageReceiver.<init>()的主要内容,如果未能解决你的问题,请参考以下文章

在android studio中重命名包名称后启动错误,运行时错误

Android Studio opencv C++ 在运行时编译链接库错误

在 Android Studio 中运行参数化单元测试时,未找到给定的测试包括错误

运行flutter应用程序时android studio中的gradle错误

在运行我的 Android Studio 项目时,Java 编译器给出了这个错误

使用用于 GoogleMaps 的 android studio 样板代码的运行时错误