2013-09-30 12 views
5

Moja aplikacja działa poprawnie z kompilacją debugowania i widzę wyjątki Crashlytics zgłaszane na każdym urządzeniu, na którym testowałem funkcjonalność aplikacji. Jednak gdy dostanę wersję do wydania przez Jenkinsa:Raporty Crashlytics Nie można pobrać ustawień z https://settings.crashlytics.com/

a. aplikacja utknie na ekranie uruchamiania, które jest puste.

b. okno dialogowe "aplikacja zatrzymała się".

Znalazłem kilka wiadomości logcat podczas wykonywania build wydaniu:

pierwsze: to zrzuca następujący wyjątek

09-30 09:49:05.561: I/Crashlytics(5696): Initializing Crashlytics 1.0.4.15 
09-30 09:49:05.591: E/Crashlytics(5696): . 
09-30 09:49:05.591: E/Crashlytics(5696): .  | | 
09-30 09:49:05.591: E/Crashlytics(5696): .  | | 
09-30 09:49:05.591: E/Crashlytics(5696): .  | | 
09-30 09:49:05.591: E/Crashlytics(5696): . \ | |/
09-30 09:49:05.591: E/Crashlytics(5696): . \ /
09-30 09:49:05.591: E/Crashlytics(5696): .  \/
09-30 09:49:05.591: E/Crashlytics(5696): .  \/ 
09-30 09:49:05.591: E/Crashlytics(5696): . 
09-30 09:49:05.591: E/Crashlytics(5696): Something is missing! Find it here: 
09-30 09:49:05.591: E/Crashlytics(5696): http://www.crashlytics.com/api/v1/[API_KEY]/android/confirm/[PACKAGE_NAME] 
09-30 09:49:05.591: E/Crashlytics(5696): . 
09-30 09:49:05.591: E/Crashlytics(5696): .  /\ 
09-30 09:49:05.591: E/Crashlytics(5696): . /\ 
09-30 09:49:05.591: E/Crashlytics(5696): . / \ 
09-30 09:49:05.601: E/Crashlytics(5696): . /| | \ 
09-30 09:49:05.601: E/Crashlytics(5696): .  | | 
09-30 09:49:05.601: E/Crashlytics(5696): .  | | 
09-30 09:49:05.601: E/Crashlytics(5696): .  | | 
09-30 09:49:05.601: E/Crashlytics(5696): . 
09-30 09:49:05.601: D/AndroidRuntime(5696): Shutting down VM 
09-30 09:49:05.601: W/dalvikvm(5696): threadid=1: thread exiting with uncaught exception (group=0x40ad8228) 
09-30 09:49:05.601: E/AndroidRuntime(5696): FATAL EXCEPTION: main 
09-30 09:49:05.601: E/AndroidRuntime(5696): java.lang.RuntimeException: Unable to start activity ComponentInfo{[PACKAGE_NAME]/[ACTIVITY_NAME]}: com.crashlytics.android.CrashlyticsMissingDependencyException: 

Po drugie: Nie można pobrać ustawienia z https://settings.crashlytics.com/spi/v1/platforms/android/apps/[APP_PACKAGE_NAME]/settings; [class org.json.JSONException: Value Invalid of type java.lang.String nie może zostać przekonwertowany na JSONObject]

Po trzecie: często narzekanie na brak klucza API_KEY w manifeście. Jednak już jest w manifeście i działa poprawnie w kompilacjach debugowania.

<meta-data android:name="com.crashlytics.ApiKey" android:value="[crashlytics_api_key]"/>

wewnątrz znacznika <application>.

Zrobiłem też następujące:

  1. Obserwowani url mowa w ślad wyjątków, ale przekierowuje mnie do crashlytics/stronie pobierania. prawdopodobnie nie mam uprawnień.

  2. Dodany <import file="./ant_tasks/crashlytics_build.xml"/> w build.xml i obejmował następujące pliki źródłowe: crashlytics_build_base.xml, crashlytics_build.xml, crashlytics-devtools.jar i crashlytics.jar

  3. Eksportowane plik crashlytics.jar w Zamów & Eksportuj/.classpath.

<classpathentry exported="true" kind="lib" path="libs/crashlytics.jar"/>

ale nadal nie pomaga.

Kiedy odkomentowaniu Crashlytics.start(getApplicationContext()); wewnątrz Application.onCreate()

zarówno debugowania i uwalniania buduje działa dobrze, oczywiście, że nie dostają żadnych raportów o awariach.

@Override 
public void onCreate() { 
    super.onCreate(); 
    Crashlytics.start(getApplicationContext()); 
} 

Jeśli ktoś napotkał podobne problemy, pomóż mi go rozwiązać. Z góry bardzo dziękuję.

Tylko dla mojego zrozumienia:

  1. Does Crashlytics ma inny API_KEY do debugowania i uwalniania buduje?
  2. Czy muszę używać plików kompilacji crashlytics?
  3. Czego mi brakuje do wydania wersji?
+0

Spróbuj tego: http://stackoverflow.com/questions/17563601/running-android-app-with-crashlytics-from-intellij – Oknesif

Odpowiedz

1

Wygląda na to, że nie dostajesz bibliotek kompilacji i właściwości we właściwym miejscu. Zgaduję z "Moja aplikacja działa dobrze z kompilacją debugowania", że używasz innego środowiska kompilacji (może IDE), ale potem na Jenkinsach używasz czegoś takiego jak Maven. Integracja IDE pomoże ci dużo w debugowaniu, ale są dodatkowe kroki, aby uzyskać funkcjonalną linię poleceń do budowania.

Po przejściu do strony pobierania, którą polecają, powinny istnieć instrukcje dotyczące rozmieszczania Crashlytics w dowolnym systemie kompilacji. Musisz wybrać właściwy, a następnie skopiować/wkleić dokładnie to, co mają do swoich plików kompilacji. Zrobiłem to dla Mavena i tak długo, jak masz właściwą rzecz w POM, powinieneś być gotowy. W przypadku gradle może być nawet łatwiejsze.