Ich verwende die TinyBus -Bibliothek, um Ereignisse in meiner App zu versenden. MinSDK ist 15, kompilieren SDK ist 23.
Auf Pre-21-Geräten stehe ich vor dem Problem, das anscheinend viele Apps betrifft, die Reflektionen verwenden. Sobald ich versuche, mich in meiner Basis Activity
klasse am Bus zu registrieren (die von AppCompatActivity
erbt), erhalte ich das folgende Crash-Log:
Ich weiß, dass dieser Fehler dadurch verursacht wird, dass Dalvik eine Klasse nicht initialisiert, die in der Datei dex
nicht gefunden werden kann. Es gibt eine Menge Informationen und Fragen zu diesem Thema (da es auch Otto und andere betrifft), aber bisher habe ich nur einen Fix gesehen: entferne die Verwendung von PersistableBundle
aus der App. Ich verweise jedoch nirgendwo in meinem Code auf PersistableBundle
, aber das System tut das anscheinend.
Gibt es eine andere bekannte Lösung für das Problem?
Nun, das Problem ist jetzt gelöst. Nachdem ich all meinen Code durchgegangen bin (was ich vor langer Zeit hätte tun sollen), habe ich herausgefunden, dass ich tatsächlich Referenzen auf das PersistableBundle
hatte. Diese befanden sich in Methoden, die ich der IDE wie onPostCreate(PersistableBundle bundle)
geben ließ und denen ich nicht Beachtung schenkte. Durch Ersetzen aller PersistableBundle
durch Bundle
wurde das Problem behoben.
Für Leute, die ein ähnliches Problem haben, kann ich nur vorschlagen, die erzeugten Sachen genau anzusehen, wenn Sie eine neuere API benutzen.
Tags und Links java android android-reflection