2010-03-12 8 views
6

me sale el siguiente seguimiento de la pila cuando se ejecuta Android mis pruebas en el emulador:¿Por qué obtengo un Error de acceso ilegal al ejecutar mis pruebas de Android?

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 

Paso los ensayos de un proyecto extra. Y parece que hay algunos problemas al cargar las clases del otro proyecto. He realizado las pruebas antes, pero ahora están fallando. El proyecto bajo prueba se ejecuta sin problemas.

La línea 14 de la clase auxiliar es:

this.httpHelper = new HttpHelper(userProfile); 

que iniciar una clase HttpHelper que es responsable de ejecutar httpqueries. Creo que de alguna manera esta clase de ayuda ya no está disponible, pero no tengo idea de por qué.

+0

¿Qué hay en la línea 14 de Helper.java? – RickNotFred

+0

¿Está utilizando bibliotecas externas en su proyecto? Si este es el caso, las instrucciones sobre este [artículo] (http://dtmilano.blogspot.com/2009/12/android-testing-external-libraries.html) pueden ayudarlo. –

+0

hola, hice lo que dice el artículo, pero todavía tiene un error. Al principio, agregué un proyecto Java externo a la pestaña "Proyecto", luego lo revisé en la pestaña "Ordenar y exportar". Todavía tiene ese error. "acceso de cargador cruzado ..." en la línea usando un proyecto externo. (De hecho, el proyecto externo está en el mismo espacio de trabajo) – Emerald214

Respuesta

4

Estaba teniendo el mismo problema, pero en mi caso estaba agregando la referencia de la biblioteca tanto a la aplicación como a los proyectos de prueba.

Al eliminar la referencia a la biblioteca del proyecto de prueba y dejar solo la referencia al proyecto de la aplicación, se solucionó el problema. La excepción java.lang.IllegalAccessError y el mensaje "Clase resuelta por DEX inesperado" fueron las pistas para ayudar a resolver este problema.

Cuestiones relacionadas