Ich habe eine Klasse, die die Anwendungsklasse erweitert, und manchmal sehe ich in meiner Entwicklerkonsole den Fehler ClassNotFoundException
So deklariere ich es in meinem Manifest
%Vor% ActiveStore
ist nur eine Klasse, die einen Anwendungskontext zum Starten und Abbrechen von Alarmen enthält. Warum sollte ich diesen Fehler erhalten?
Aktualisierung:
Ich sehe diesen Fehler von Zeit zu Zeit immer noch auf meiner Entwicklerseite, auch nachdem ich eine .
vor dem Klassennamen gesetzt habe. Es scheint nur bei einem Update oder einer neuen Installation zu passieren
Ich sehe auch dieses Problem viel und habe keine Erklärung. Ich habe Leute gesehen, die sagen, dass es NACH einem Unfall passieren kann. Angeblich könnte der ClassLoader nach einem Absturz in einem "schlechten" Zustand sein und keine Klassen laden können. Im Grunde würde dies bedeuten, dass ein früherer Fehler die eigentliche Ursache dieses Problems ist. Entschuldigung, um vage zu sein, bitte aktualisieren Sie, wenn Sie eine genauere Erklärung finden.
Wenn Sie Code haben, der beim Start ausgeführt werden muss (z. B. ein BroadcastReceiver
in BOOT_COMPLETED
oder ein AppWidget
), können Sie dies erhalten, wenn der Benutzer Ihre App auf einer externen SD-Karte installiert hat. Zu diesem Zeitpunkt ist die SD-Karte möglicherweise noch nicht geladen, daher kann Ihre Anwendungsklasse nicht geladen werden. Sie können dies lösen, indem Sie den Installationsmodus auf internalOnly
setzen oder im Fall von BroadcastReceiver
auf die Übertragung von ACTION_MEDIA_MOUNTED
warten. Siehe Android Intent für sdcard ready
Ich habe das schon einmal erlebt, als ich eine der Klassen / Interfaces, die auf einer bestimmten API-Ebene nicht verfügbar waren, erweitert oder implementiert habe. Das sagt es nicht richtig.
Ich habe das gesehen, wenn es Überprüfungsfehler für eine andere Klasse gibt, von der die betreffende Klasse abhängt. Scrollen Sie zurück und sehen Sie, ob Verifizierungsfehler in der vollständigen logcat-Ausgabe vorliegen.
Wenn ecm2.android.ActiveStore von einer Klasse abhängt, die die Verifizierung nicht besteht, dann würden Sie eine Klasse nicht für ecm2.android.ActiveStore finden, nicht für die Klasse ecm2.android.ActiveStore.
Haben Sie versucht, den vollständig qualifizierten Paketnamen zu verwenden, um auf Ihre Klasse in Ihrem Manifest zu verweisen?
%Vor%würde
werden %Vor%Sie benutzen ProGuard oder etwas ähnliches, um Ihren Code zu verschleiern?
Tags und Links android classcastexception