5

Kiedy budować Amazon (Kindle) smak mojego Android app biegnę do tego błędu wykonawczego:Błąd runtime w Android Studio Stub! na com.amazon.device.messaging.ADMMessageReceiver. <init>()

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

Potrzebuję plik lokalny amazon-device-messaging.jar skompilować mojej aplikacji, jednak Nie muszę uwzględniać go podczas uruchamiania, ponieważ urządzenie amazon będzie miało niezbędne klasy i metody. Jak mogę zaktualizować plik build.gradle systemu Android Studio, aby to zrobić?

Odpowiedz

4

Wystąpiłem również w tym wydaniu. Podczas dodawania Amazon Messaging Device słoik jako biblioteka, Android Studio automatycznie generowane

dependencies { 
    compile files('libs/amazon-device-messaging-1.0.1.jar') 
} 

ja po prostu potrzebne, aby przełączyć że do

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

To załatwiło sprawę dla mnie. Wezwę do głosu, @Clu, ale nie mam wystarczająco dobrej reputacji.

+0

Dzięki! Może nie potrzebuję szczegółów dodatkowych konfiguracji. Spróbuję go usunąć, aby sprawdzić, czy nadal działa. – clu

+0

Wygląda na to, że prostsza odpowiedź to właściwy sposób, dzięki! – clu

+0

Mam słoik ADM wewnątrz projektu biblioteki Android, choć wspomniałem o zależności jar słownika ADM, jak podano w pliku build.grade projektu Android biblioteki. Nadal dostaję ten błąd. Jakaś pomoc? – sanath01

5

Aby rozwiązać ten problem, użyłem typu zależności provided.

Wewnątrz moich modułów projektowych build.gradle plik, tuż przed moim dependencies zamknięcia I obejmowały:

configurations { 
    provided 
} 

sourceSets { 
    main { 
     compileClasspath += configurations.provided 
    } 
} 

a potem, w ciągu mojego zamknięcia Zależności I obejmował następujące:

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

Zapewniło to, że plik .jar był używany tylko w czasie kompilacji, a nie w czasie wykonywania. Jestem całkiem nowy w Android Studio i zajęło mi to trochę czasu; mam nadzieję, że to pomoże Ci przejść do Android Studio.

+1

Jeśli biblioteka i wywołanie biblioteki znajdują się w różnych pakietach, "dostarczone" zostanie zignorowane, a biblioteka skrótowa zostanie mimo to skompilowana do pliku APK. Można to rozwiązać, umieszczając bibliotekę w repozytorium Maven. –

1
  1. Dodaj słoik ADM w lokalnym repozytorium Maven.

Command:

  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. Dołącz lokalnego repozytorium maven jako zależność projektu:

Add „mavenLocal()” w głównym Gradle zbudować skrypt:

  allprojects { 
      repositories { 
          mavenCentral() 
          mavenLocal() 
      } 
  1. Łączenie Artefakt Maven w projekcie ADM.

Dodaj poniżej skryptu ADMWrapperLib Gradle (: :).

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