ACRA jest upaść z nieparzystej problemu:Czy ACRA może być używana w projekcie bibliotecznym? Sam
IllegalStateException: Cannot access ErrorReporter before ACRA#init
Mam app z Acra 4.3.0, który działa doskonale. Zmieniłem całą aplikację na bibliotekę, dzięki czemu mogę tworzyć drobne warianty. Stworzyłem nowy projekt, który jest całkowicie pusty, inny niż manifest i łączy się z tą nową biblioteką. Dla każdego, kto próbuje to zrobić, w AcraApplication.java musisz usunąć linię "resToastText = R.string.crash_toast_text" i dodać nową linię poniżej Acra.init (this);
ACRA.getConfig().setResToastText(R.string.crash_toast_text);
Projekt buduje grzywny i debugowania Mam potwierdzone ACRA.init (this); jest uruchamiany przed moim głównym kodem programu i zanim wystąpi błąd. W programie głównym, w miejscu, gdzie możemy ustawić niektóre niestandardowe dane:
ACRA.getErrorReporter().putCustomData("Orientation", "L");
powoduje katastrofę (lub bardziej precyzyjnie, sam ACRA powoduje błąd) i nie jest generowany raport ACRA.
Wszelkich pomysłów, co do spróbowania dalej lub wskazówek, gdzie szukać? Być może ACRA jest niekompatybilna z bibliotekami, co w takim przypadku mogę inaczej poradzić sobie z tą biblioteką.
Rozwiązanie: Zamiast dodawania linię poniżej Acra.init(this);
dodać te trzy linie przed linią Init:
ACRAConfiguration config = ACRA.getNewDefaultConfig(this);
config.setResToastText(R.string.crash_toast_text);
ACRA.setConfig(config);
ACRA.init(this);
Uwaga To działa tylko w wersji 4.3.0 lub nowszej.
Hi, nawet z tych linii w moim proguard.cfg nadal pojawia się "NoSuchFieldError: SILENT" w moim wydaniu. Nie mogę tego rozgryźć – Arnaud