Warum bekomme ich einen NoClassDefFoundError, wenn ich meinen Test für eine ActionBarActivity ausfühle?

8

Also verwende ich Robotium und meine Testklasse erweitert die Klasse ActivityInstrumentationTestCase2 . Ich habe die v7-Unterstützungsbibliothek in mein Hauptprojekt und auch in das Testprojekt als Bibliotheken importiert.

Nun, was ich nicht verstehe, ist, dass die Testklasse funktioniert, wenn ich die getestete Klasse ändere, um Activity zu erweitern, aber wenn ich sie in ActionBarActivity ändere, gibt sie NoClassDefFoundError zurück.

Vermisse ich etwas?

Hier ist das Protokoll, das ich bekomme

%Vor%     
John Ernest Guadalupe 09.04.2015, 10:11
quelle

3 Antworten

4

Stellen Sie sicher, dass Sie die v7-Unterstützungsbibliothek exportieren, auf die im Testprojekt verwiesen wird.

Klicken Sie mit der rechten Maustaste auf das Testprojekt, Eigenschaften- & gt; java build path- & gt; Bestell- und Export-Registerkarte.

Für ein Beispiel siehe Schritt 5 unter "Einstellungen" hier: Ссылка (obwohl dies zeigt, wie die Espresso-Bibliothek zu exportieren ist, würde dies in diesem Fall gelten)

    
Steven Mark Ford 17.04.2015 07:47
quelle
2

Ich denke, dass Ihre Bibliothek v7 App compat ein Importproblem hat.

Versuchen Sie Folgendes:

  • Importieren Sie die Support-Bibliothek als Projekt von "sdk/extras/android/support/v7/appcompat".

  • Referenzbibliothek in Ihrem Projekt (für Eclipse, "Properties - Android - Add" ).

  • Projekte erstellen (für Eclipse, "Projects - Build All" ). Stellen Sie sicher, dass Sie "android.support.v7.appcompat" in Ihrem Hauptprojekt-Gen-Ordner haben.

Wenn es Ihr Problem immer noch nicht löst, starten Sie Eclipse neu und säubern und erstellen Sie das Projekt neu

Wenn das Problem weiterhin besteht, entfernen Sie die Support-Bibliothek von Ihrem Computer, laden Sie sie erneut herunter und folgen Sie den oben genannten Schritten.

    
Maxouille 14.04.2015 07:57
quelle
0

Dieser Code im build.gradle hat ein ähnliches Problem für mich gelöst:

%Vor%

Mehr hier .

    
denys 17.04.2015 10:42
quelle