Eine Klasse, die die Anwendung erweitert, löst ClassNotFoundException aus

9

Ich habe eine Klasse, die die Anwendungsklasse erweitert, und manchmal sehe ich in meiner Entwicklerkonsole den Fehler ClassNotFoundException

%Vor%

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

    
tyczj 16.04.2013, 21:07
quelle

7 Antworten

4

Wahrscheinlich, weil du den Punkt vor dem Klassennamen verpasst hast (was Dalvik sagt, dass deine Klasse zum Paket deiner App gehört)

%Vor%

Wenn Sie jedoch Zweifel haben, geben Sie sowohl die gesamte Manifest-Datei als auch Ihre .java

ein     
DigCamara 16.04.2013 21:10
quelle
1

In deinem Manifest solltest du entweder folgendes haben:

%Vor%

oder wie bereits erwähnt

%Vor%

Stellen Sie außerdem sicher, dass der Konstruktor Ihrer MyApplication-Klasse öffentlich ist.

    
mpellegr 09.07.2013 20:07
quelle
0

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.

    
BoD 06.07.2013 00:43
quelle
0

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

    
keyboardr 06.07.2013 01:59
quelle
0

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.

    
nickmartens1980 08.07.2013 14:17
quelle
0

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.

    
Nick Palmer 10.07.2013 03:37
quelle
0

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?

    
Jade Byfield 06.07.2013 02:05
quelle

Tags und Links