2012-03-26 12 views
12

Ich habe nur versucht, Robotium in einem Android-JUnit-Test zu verwenden, aber die Prüfung nicht immer mit einem Fehler:Android Robotium NoClassDefFoundError

java.lang.NoClassDefFoundError: com.jayway.android.robotium.solo.Solo

geworfen bei solo = neu Solo (getInstrumentation(), getActivity()); in der setUp() -Methode:

protected void setUp() throws Exception { 
    super.setUp(); 
    solo = new Solo(getInstrumentation(), getActivity()); 
} 

ich irgendwo gelesen, dass dies dem Android SDK Revision 17 zusammenhängen könnte, aber ich nicht bestätigen kann, wie ich Robotium bereits mit SDK 17.

versucht, die erste Robotium jar wird dem Projektbuildpfad ordnungsgemäß hinzugefügt.

Hat jemand ähnliche Probleme festgestellt?

Grüße K.

Antwort

30

hatte ich das gleiche Problem heute. Ich löste das, indem ich das jar in das libs-Verzeichnis des Testprojekts importierte und es dann zu den Build Path Libraries hinzufügte:

TestProject Eigenschaften -> Java Build Pfad -> Libreries -> JARs hinzufügen ... -> TestProject/libs /robotium-solo-3.1.jar

+2

das libs-Verzeichnis hat es geschafft, danke!Sie sollten sie jedoch nicht zum build-Pfad hinzufügen, da alles in libs automatisch zum build-Pfad hinzugefügt wird. (http://tools.android.com/recent/dealingwithdependentsinandroidprojects). – Alf

+0

Hallo Kim, ich habe keine Lib für mein Testprojekt gesehen ... wo muss ich das ändern? – ChanGan

25

Sie müssen das Robotium-Jar exportieren, indem Sie zu Eigenschaften-> Java-Build-Pfad -> Bestellen und Exportieren gehen. Überprüfen Sie dann die Robotium JAR-Datei.

+0

Das war mein Problem, danke! – Blaskovicz

+0

Das hat mir in dieser Situation geholfen! Vielen Dank! – joebalt

3

Hatte das gleiche Problem auf SDK 17. Hinzufügen der Robotium Jar zu Lib und Export geholfen. Außerdem musste der veraltete Superaufruf im Konstruktor von Super (String, Class) in Super (Class) geändert werden, damit es funktioniert.

+0

Ich hatte auch alle drei dieser Probleme beim Versuch, eine Jelly Bean-Anwendung zu testen. Stellen Sie sicher, dass Sie den veralteten Konstruktor nicht verwenden. – zzzzzzzzzzzzzzzzzzzzzzzzzzzzzz

2

Was ich tat, den Fehler zu beheben war:

  • Entfernen Sie die Bibliotheken aus dem Standard-Java-Build-Pfad:
  • rechts auf den Projektnamen klicken> Eigenschaften> Java Build Path> Registerkarte Bibliotheken> alles entfernen außer dem "Android XX" (2.3.3 in meinem Fall) und den "Android Dependencies"
  • Benennen Sie den Bibliotheksordner von "lib" in "libs" um.
  • Dadurch werden alle Bibliotheken im Ordner "libs "Werden vom Android-Plugin gefunden und zum" Android Abhängigkeiten“Element des Projekts
  • Reinigen Sie das Projekt (nicht genau benötigt)

Sie sind gut zu gehen!

7

habe ich diese Konfiguration das Problem

enter image description here

Hinweis zu lösen: Ich Robotium erste setzen.

2

Wenn das Problem weiterhin besteht, starten Sie Ihre Eclipse neu. Ich hatte das gleiche Problem auch nach dem Importieren von roboterium.jar, aber nach dem Neustart der Eclipse hat es gut funktioniert.

Verwandte Themen