Ich habe schon einige Threads über ClassNotFoundException und Android gesehen, aber ich muss noch herausfinden, was meiner Meinung nach der Grund für das ist, was ich erlebe.
Ich habe eine App - Widget für Datenzähler - im Android Market. Es hat 250k + Downloads, und jedes Mal, wenn ich eine neue Version veröffentliche, bekomme ich eine Handvoll (1-5) Fehlerberichte über eine ClassNotFoundException auf meiner Entwicklerkonsole in Android Market.
29 Berichte stammen von nicht spezifizierten ("OTHER") Geräten, zwei stammen vom Nexus One. Es gibt zwei Benutzermeldungen: "Absturz beim Start" und "Während der Update-Installation".
Alle Berichte betreffen meine Empfänger (erweitert BroadcastReceiver). Einer der Empfänger wird relativ häufig ausgelöst, da er den Dienst startet, der die Datennutzung des Android-Geräts liest und speichert. Ich habe das Gefühl, dass es sein kann, dass ein Alarm (mit AlarmManager) für den Empfänger eingestellt wird und dann der Benutzer / das Gerät die App upgradet und die Klasse nicht gefunden wird - entweder weil es sich in einem physikalisch anderen Paket befindet, oder dass es passiert Moment das Gerät macht den Swap. Könnte das der Fall sein? Und wenn ja, gibt es irgendwelche Möglichkeiten? Ich kann nicht anders sehen, warum fast alle Berichte (sagen wir 90%) am selben oder nächsten Tag nach einer neuen Veröffentlichung kommen.
Der Stacktrace für einen meiner Empfänger (die anderen geben denselben Stacktrace als der Klassenname):
%Vor%Nach etwa einem Jahr, in dem ich meine Apps aktualisiert habe, verstehe ich das Problem und es scheint keine Lösungen dafür zu geben:
Meine Apps (abhängig von den Benutzereinstellungen) verwenden den Alarm Manager, um bestimmte Aufgaben in regelmäßigen Abständen auszuführen. Wenn die App aktualisiert wird, ist sie für kurze Zeit nicht verfügbar und wenn der Alarm ausgelöst wird, verursacht dies das spezifische Problem! Dann wird die App wieder verfügbar und alles geht wie gewohnt.
So bekomme ich diesen FC-Bericht regelmäßig, wenn ich meine Apps aktualisiere und es gibt nichts, was man dagegen tun könnte.
Jetzt sehe ich in den Meldungen des FC-Berichts manchmal "beim Aktualisieren abgestürzt" ... Bestätigt es.
Auch bezüglich des Umzugs auf SD verhindere ich ausdrücklich, dass es aus der Manifest-Datei entfernt wird, aber einige Apps auf dem Marktplatz erlauben es, eine App zu verschieben. Also, wenn Sie Widgets oder Alarme verwenden, könnten Sie auch solche Berichte definitiv erhalten!
Angenommen, dieses Problem ähnelt der Android-App, die auf einigen Telefonen in PathClassLoader nicht geladen werden kann .
Tags und Links java android classnotfoundexception