Ошибка выполнения 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.

  1. Добавьте банку 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"
  1. Включите локальный репозиторий maven в качестве зависимости проекта:

Добавьте "mavenLocal()" в основной скрипт сборки Gradle:

            allprojects {
            repositories {
                            mavenCentral()
                            mavenLocal()
             }
  1. Свяжите артефакт Maven в проекте ADM.

Добавьте ниже строку ADMWrapperLib Gradle скрипт (::).

            provided 'com.amazon.device.messaging:amazondevicemessaging:1.0.1'
Другие вопросы по тегам