当我构建Android应用程序的亚马逊(Kindle)风格时,我遇到了此运行时错误:
Caused by: java.lang.RuntimeException: Stub!
at com.amazon.device.messaging.ADMMessageReceiver.<init>()
我需要本地amazon-device-messaging.jar文件来编译我的应用程序,但是我不需要在运行时包含它,因为amazon设备将具有必要的类和方法。如何更新我的Android Studio build.gradle文件来执行此操作?
答案 0 :(得分:5)
为了解决这个问题,我使用了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。
答案 1 :(得分:5)
我也遇到过这个问题。将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,但我没有足够的声誉。
答案 2 :(得分:1)
命令:
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"
在主Gradle构建脚本中添加“mavenLocal()”:
allprojects {
repositories {
mavenCentral()
mavenLocal()
}
添加以下行ADMWrapperLib Gradle脚本(::)。
provided 'com.amazon.device.messaging:amazondevicemessaging:1.0.1'