Ошибка выполнения Android Studio Stub! на com.amazon.device.messaging.ADMMessageReceiver.<init>()
Когда я создаю версию Amazon (Kindle) для своего Android-приложения, я сталкиваюсь с этой ошибкой времени выполнения:
Caused by: java.lang.RuntimeException: Stub!
at com.amazon.device.messaging.ADMMessageReceiver.<init>()
Мне нужен локальный файл amazon-device-messaging.jar для компиляции моего приложения, однако мне не нужно включать его во время выполнения, так как устройство amazon будет иметь необходимые классы и методы. Как мне обновить файл Android Studio build.gradle, чтобы сделать это?
3 ответа
Я тоже столкнулся с этим вопросом. При добавлении jar-сообщения Amazon Device Messaging в качестве библиотеки 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, но у меня недостаточно высокая репутация.
Чтобы решить эту проблему, я использовал 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.
- Добавьте банку ADM в локальный репозиторий Maven.
Команда:
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 в качестве зависимости проекта:
Добавьте "mavenLocal()" в основной скрипт сборки Gradle:
allprojects {
repositories {
mavenCentral()
mavenLocal()
}
- Свяжите артефакт Maven в проекте ADM.
Добавьте ниже строку ADMWrapperLib Gradle скрипт (::).
provided 'com.amazon.device.messaging:amazondevicemessaging:1.0.1'