2012-04-15 4 views
5

Also, ich versuche, eine Client-Server-Anwendung für Android zu entwickeln. Zu diesem Zweck habe ich eine Engine erstellt, die ich sowohl in Server als auch in Android-Appcation verwenden und als JAR-Datei exportieren werde.NoClassDefFoundError: Probleme mit der Verknüpfung meines eigenen Jar mit Android-Projekt

Es gab keine Probleme bei der Verwendung dieser engine.jar auf der Serverseite (einfache Hintergrund-Java-Anwendung), aber ich sah einige Probleme mit der Verknüpfung Erwähnung .jar-Datei zu meinem Android-Projekt.

zu verknüpfen engin.jar ich einige Schritte folgen:

  • erstellt "Libs" dir in meinem Android-Projekt
  • importiert engine.jar in diesem Ordner

Nach dieser engine.jar könnte in Android Dependences Gruppe gesehen werden. Außerdem kann ich alle Klassen von .jar verwenden, Eclipse markiert sie nicht als Fehler. Mein Projekt kompiliert gut, aber die App stürzt ab, wenn ich versuche, ein beliebiges Objekt aus engine.jar mit dem folgenden Fehler zu erzeugen:

04-15 23:18:12.885: E/AndroidRuntime(17409): java.lang.NoClassDefFoundError: Common.Message.Message

Ich glaube, ich alles versucht habe. Kann jemand seine Ideen über die Ursache der beschriebenen Situation teilen?

+0

Haben Sie die JAR-Datei zum Build-Pfad in Eclipse hinzugefügt? Es sollte in der Gruppe "referenzierte Bibliotheken" angezeigt werden. – smichak

+0

@smichak in SDK Tools v18 +, Bibliotheken im Ordner "libs" werden automatisch über "Android Dependencies" zum Buildpfad hinzugefügt. –

+0

Wie im vorherigen Kommentar gesagt wurde "Referenced Libraries" seit 17 Revision von "Android Dependencies" umbenannt Android SDK –

Antwort

4

Ich auch das gleiche Problem erlebt. Ich beschloss, es durch folgende Maßnahmen:

Rechtsklick auf das Projektverzeichnis ->Build Path ->Configure Build Path -> Tab Wählen Order and Export -> Prüfen/Wählen Sie die Kontrollkästchen der betreffenden .jar Dateien -> Presse Ok.

Hoffe das löst auch Ihr Problem.

+0

BOOM, das schien es zu sein. Vielen Dank, das war ein echter Notfall. –

+0

Also warum gewährst du @Arun nicht seine Prämie? –

+0

Artem, versuchte ich, aber das System erlaubte mir nicht, da nicht genug Zeit vergangen war. –

0

Für zukünftige Verwendung:

Erstellen Sie einen Ordner „libs“ in der Wurzel des Projekts mit dem Namen und fügen Sie dann das Glas Sie hinzufügen möchten, und alle Export Sachen im vorherigen Kommentar erwähnt wird automatisch erledigt.

0

Es sieht so aus, als ob Ihr Server und Ihr Client nicht das gleiche gemeinsame Klassenargument haben. Beim Codieren von Client-Server-Anwendungen müssen Sie sicherstellen, dass es ein gemeinsames Codeprojekt gibt, meistens wird dies in Zukunft eine lib-Datei.

Verwandte Themen