2010-03-12 6 views
6

erhalte ich den folgenden Stack-Trace, wenn meine Android-Tests auf dem Emulator ausgeführt wird:Warum erhalte ich bei der Ausführung meiner Android-Tests einen ungültigen Zugriffsfehler?

java.lang.NoClassDefFoundError: client.HttpHelper 
at client.Helper.<init>(Helper.java:14) 
at test.Tests.setUp(Tests.java:15) 
at android.test.AndroidTestRunner.runTest(AndroidTestRunner.java:164) 
at android.test.AndroidTestRunner.runTest(AndroidTestRunner.java:151) 
at android.test.InstrumentationTestRunner.onStart(InstrumentationTestRunner.java:425) 
at android.app.Instrumentation$InstrumentationThread.run(Instrumentation.java:1520) 
Caused by: java.lang.IllegalAccessError: cross-loader access from pre-verified class 
at dalvik.system.DexFile.defineClass(Native Method) 
at dalvik.system.DexFile.loadClass(DexFile.java:193) 
at dalvik.system.PathClassLoader.findClass(PathClassLoader.java:203) 
at java.lang.ClassLoader.loadClass(ClassLoader.java:573) 
at java.lang.ClassLoader.loadClass(ClassLoader.java:532) 
... 11 more 

ich meine Tests von einem zusätzlichen Projekt. Und es scheint einige Probleme beim Laden der Klassen aus dem anderen Projekt zu geben. Ich habe die Tests vorher ausgeführt, aber jetzt scheitern sie. Das zu testende Projekt läuft ohne Probleme.

Zeile 14 der Hilfsklasse ist:

this.httpHelper = new HttpHelper(userProfile); 

ich eine HttpHelper Klasse starten, die für die Ausführung httpqueries verantwortlich ist. Ich denke, irgendwie ist diese Helferklasse nicht mehr verfügbar, aber ich habe keine Ahnung warum.

+0

Was ist in Zeile 14 von Helper.java? – RickNotFred

+0

Verwenden Sie externe Bibliotheken in Ihrem Projekt? Wenn dies der Fall ist, kann die Anleitung zu diesem [Artikel] (http://dtmilano.blogspot.com/2009/12/android-testing-external-libraries.html) Ihnen helfen. –

+0

hi, ich habe getan, wie der Artikel sagt, aber es hat immer noch Fehler. Zuerst habe ich ein externes Java-Projekt zur Registerkarte "Projekt" hinzugefügt, dann habe ich es auf der Registerkarte "Bestellung und Export" überprüft. Es hat immer noch diesen Fehler. "Cross-Loader-Zugriff .." in der Zeile mit externen Projekt. (Das externe Projekt befindet sich im selben Arbeitsbereich.) – Emerald214

Antwort

4

Ich hatte das gleiche Problem, aber in meinem Fall habe ich die Bibliotheksreferenz zu den Anwendungs- und Testprojekten hinzugefügt.

Durch Entfernen des Verweises auf die Bibliothek aus dem Testprojekt und Zurücklassen des Verweises auf das Anwendungsprojekt wurde das Problem gelöst. Die Ausnahmebedingung java.lang.IllegalAccessError und die Meldung "Durch unerwartete DEX aufgelöste Klasse" waren die Hinweise zur Lösung dieses Problems.

Verwandte Themen