java.lang.IllegalAccessError: clase ref en la clase pre-verificada resuelta a la implementación inesperada obteniendo mientras se ejecuta el proyecto de prueba?

He implementado un proyecto utilizando una biblioteca de terceros (zxing) después de que el proyecto de implementación funciona bien, luego de haber escrito un proyecto de prueba para probar mi proyecto. Después de ejecutar el proyecto de prueba, el proyecto principal, las clases y sus métodos no dan ningún resultado errores, pero si cualquier clase de zxing framework se utiliza dentro de ese método del proyecto principal allí obteniendo el error anterior en tiempo de ejecución aún no es tiempo de comstackción. Por favor dígame cómo resolver este problema?

Obtiene este error debido a que se agregó una referencia de biblioteca de terceros dos veces. Ha agregado la ruta de la aplicación en la ruta de comstackción del proyecto de prueba. por lo que la referencia de la biblioteca se agregó automáticamente al proyecto de prueba “. Elimine cualquier referencia de biblioteca en el proyecto de prueba en propiedades-> Android.

FYI, haga clic aquí para obtener una explicación detallada .

Es porque los archivos jar zxing se están cargando dos veces. Debe configurar la biblioteca zxing como ” Proporcionada ” (si está comstackndo su código usando Maven) en tiempo de comstackción, para que no agregue la biblioteca a su código de bytes. De esa forma no obtendrías el error

Desafortunadamente, la mejor solución que he visto es usar un script con estas líneas de código y usar Espresso v2.0:

adb shell setprop dalvik.vm.dexopt-flags v=n,o=v adb shell stop installd adb shell start installd 

Ejecútelo antes de comenzar a probar. Solo es necesario hacerlo una vez.

Cambié la configuración del proyecto de prueba en Intelij Idea. Vaya a Módulos -> Dependencias, luego configure el scope del proyecto probado como ‘Provisto’.

Recibí este error porque estaba trabajando con guayaba y Espresso también contiene guayaba.

Si usa Gradle y Android Studio, puede excluir paquetes de la dependencia de esta manera:

 androidTestCompile('com.jakewharton.espresso:espresso:1.1-r3') { exclude group: 'com.google.guava' } 

Quite la marca de los jar (en mi caso mapas y tarro de servicios de google play) desde la pestaña “Ordenar y Exportar” debajo de la ruta de comstackción Java de Project en Eclipse. Pero déjelos agregar en la pestaña “Bibliotecas”. Haga clic en Aceptar, limpiar proyectos y comstackr ahora. Funciona.

A veces tengo este error Solo el proyecto build-> clean me ayudó

Si no necesita específicamente un dispositivo con baja versión de API (<= 19), puede dejar dependencias transitivas y crear un emulador con una versión API más alta.

Esto ocurre solo en dispositivos cuya API es inferior a Lollipop (API 21). Ejecutar pruebas en emuladores superiores / iguales a API 21 se ejecuta normalmente, sin problemas.