ClassNotFoundException ? Geht ja gar nich!

U

Unicate

Erfahrenes Mitglied
57
Hi alle zusammen!

Ich habe vor kurzem meine erste App in den Market geladen. Habe sie in sämtlichen Emulatoren getestet und sie hat auch bei allen funktioniert außer in Froyo. Daraufhin habe ich die App-SDK version auf 7 gesetzt, so das eigentlich kein Froyo user diese installieren kann (oder?)

Jedenfalls habe ich folgenden errorreport bekommen:
Code:
java.lang.RuntimeException: Unable to instantiate application  de.unicate.android.ddtram.DDTram: java.lang.ClassNotFoundException:  de.unicate.android.ddtram.DDTram in loader  dalvik.system.PathClassLoader[/data/app/de.unicate.android.ddtram-1.apk]
	at android.app.ActivityThread$PackageInfo.makeApplication(ActivityThread.java:670)
	at android.app.ActivityThread.handleBindApplication(ActivityThread.java:4483)
	at android.app.ActivityThread.access$3000(ActivityThread.java:135)
	at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2181)
	at android.os.Handler.dispatchMessage(Handler.java:99)
	at android.os.Looper.loop(Looper.java:144)
	at android.app.ActivityThread.main(ActivityThread.java:4937)
	at java.lang.reflect.Method.invokeNative(Native Method)
	at java.lang.reflect.Method.invoke(Method.java:521)
	at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)
	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)
	at dalvik.system.NativeStart.main(Native Method)
Caused  by: java.lang.ClassNotFoundException: de.unicate.android.ddtram.DDTram  in loader  dalvik.system.PathClassLoader[/data/app/de.unicate.android.ddtram-1.apk]
	at dalvik.system.PathClassLoader.findClass(PathClassLoader.java:243)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:573)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:532)
	at android.app.Instrumentation.newApplication(Instrumentation.java:945)
	at android.app.ActivityThread$PackageInfo.makeApplication(ActivityThread.java:660)
	... 11 more

Die Klasse "de.unicate.android.ddtram.DDTram" gibt es nicht und soll es auch nicht geben.
Warum, wo und welche Version des Android versucht(weil ich tu's nicht), eine solche Klasse zu instanzieren?

Ist das evtl. zum Standard geworden? (das die Applikation eine solche Klassen besitzen muss)
Habe ich was vergessen?

Ich habe mal gegoogled und ich bin nicht der einzige mit dem Problem, allerdings habe ich auch noch keine Lösung dafür gefunden.
 
froyo ist 8
 
Deswegen habe ich sie ja auch auf die 7 gesetzt. Ich möchte ja nicht, das ein Froyo user diese version installiert (noch nicht)
 
Ok, hier ist warscheinlich das Problem:

Future versions of Android (beyond Android 2.0.1) will no longer check or enforce the android:maxSdkVersion attribute during installation or revalidation. Android Market will continue to use the attribute as a filter, however, when presenting users with applications available for download.

Da ich die Applikation aber mit dem Android 2.1+update gebaut habe, wird es sicher möglich sein die Applikation auf dem Froyo zu installieren.

Da ich bisher kein maximum gesetzt habe, wird es im Market auch nicht gefiltert.

Andere Meinungen?
 
Ok, ich hatte unrecht.

Selbst nachdem ich das sdkMaximum gesetzt hatte hat es nicht funktioniert.

Nach ein wenig mehr googlen...

Habe ich das hier gefunden.

Am Ende des Eintrags steht in einem Kommentar, das man im Manifest nur das Attribut "android:name ..." entfernen muss, und siehe da, es funktioniert wieder.
 
Du kannst den Eintrag auch stehen lassen, musst ihn nur an dein Package bzw. Klasse anpassen.

Hatte ich auch, nachdem ich das Package umbenannt habe, bekam ich auch ein ClassNotFound. Ich habe dann gesehen dass das Attribut android:name noch das alte Package hatte.
 
Irgendwie finde ich die Namenswahl des Attributes auch ein wenig ungeschickt. classname wäre irgendwie eindeutiger.
 

Ähnliche Themen

D
Antworten
23
Aufrufe
2.527
Data2006
D
SaniMatthias
Antworten
19
Aufrufe
947
swa00
swa00
W
  • washpuda
Antworten
10
Aufrufe
1.258
swa00
swa00
Zurück
Oben Unten