La ejecución de instrumentación falló debido a 'java.lang.IllegalAccessError'
Estoy escribiendo pruebas para el proyecto de Android en este momento y simplemente no entiendo por qué es esto un dolor! Después de un día entero de la disposición finalmente consigo el trabajo, pero ahora, después de que he escrito varias clases de prueba Intellij IDEA se coloca:
Test failed to run to completion. Reason: 'Instrumentation run failed due to 'java.lang.IllegalAccessError''. Check device logcat for details Test running failed: Instrumentation run failed due to 'java.lang.IllegalAccessError'
Las pruebas que estaba ejecutando hace un par de minutos no se pueden ejecutar más. Teniendo en cuenta que volví a mi último compromiso donde todo era ideal y no estaba cambiando cualquier configuración que me estoy preguntando por qué.
- Mono dando un error extraño en el emulador de Android
- Android: pruebas de instumentación para widgets de aplicaciones
- Android Instrumentación de Pruebas - UI Thread Issues
- ¿Cómo usar android.test.mock MockContext?
- Android Robotium NoClassDefFoundError
Esto es lo que logcat está diciendo:
02-12 20:16:09.398: E/AndroidRuntime(4922): FATAL EXCEPTION: main 02-12 20:16:09.398: E/AndroidRuntime(4922): java.lang.IllegalAccessError: Class ref in pre-verified class resolved to unexpected implementation 02-12 20:16:09.398: E/AndroidRuntime(4922): at com.actionbarsherlock.view.MenuInflater$MenuState.readItem(MenuInflater.java:327) 02-12 20:16:09.398: E/AndroidRuntime(4922): at com.actionbarsherlock.view.MenuInflater.parseMenu(MenuInflater.java:147) 02-12 20:16:09.398: E/AndroidRuntime(4922): at com.actionbarsherlock.view.MenuInflater.inflate(MenuInflater.java:97) 02-12 20:16:09.398: E/AndroidRuntime(4922): at <package>.ui.CheckPasswordActivity.onCreateOptionsMenu(CheckPasswordActivity.java:130) 02-12 20:16:09.398: E/AndroidRuntime(4922): at android.support.v4.app._ActionBarSherlockTrojanHorse.onCreatePanelMenu(_ActionBarSherlockTrojanHorse.java:45) 02-12 20:16:09.398: E/AndroidRuntime(4922): at com.actionbarsherlock.ActionBarSherlock.callbackCreateOptionsMenu(ActionBarSherlock.java:556) 02-12 20:16:09.398: E/AndroidRuntime(4922): at com.actionbarsherlock.internal.ActionBarSherlockNative.dispatchCreateOptionsMenu(ActionBarSherlockNative.java:60) 02-12 20:16:09.398: E/AndroidRuntime(4922): at com.actionbarsherlock.app.SherlockFragmentActivity.onCreatePanelMenu(SherlockFragmentActivity.java:154) 02-12 20:16:09.398: E/AndroidRuntime(4922): at com.android.internal.policy.impl.PhoneWindow.preparePanel(PhoneWindow.java:407) 02-12 20:16:09.398: E/AndroidRuntime(4922): at com.android.internal.policy.impl.PhoneWindow.doInvalidatePanelMenu(PhoneWindow.java:769) 02-12 20:16:09.398: E/AndroidRuntime(4922): at com.android.internal.policy.impl.PhoneWindow$1.run(PhoneWindow.java:201) 02-12 20:16:09.398: E/AndroidRuntime(4922): at android.view.Choreographer$CallbackRecord.run(Choreographer.java:749) 02-12 20:16:09.398: E/AndroidRuntime(4922): at android.view.Choreographer.doCallbacks(Choreographer.java:562) 02-12 20:16:09.398: E/AndroidRuntime(4922): at android.view.Choreographer.doFrame(Choreographer.java:531) 02-12 20:16:09.398: E/AndroidRuntime(4922): at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:735) 02-12 20:16:09.398: E/AndroidRuntime(4922): at android.os.Handler.handleCallback(Handler.java:725) 02-12 20:16:09.398: E/AndroidRuntime(4922): at android.os.Handler.dispatchMessage(Handler.java:92) 02-12 20:16:09.398: E/AndroidRuntime(4922): at android.os.Looper.loop(Looper.java:137) 02-12 20:16:09.398: E/AndroidRuntime(4922): at android.app.ActivityThread.main(ActivityThread.java:5039) 02-12 20:16:09.398: E/AndroidRuntime(4922): at java.lang.reflect.Method.invokeNative(Native Method) 02-12 20:16:09.398: E/AndroidRuntime(4922): at java.lang.reflect.Method.invoke(Method.java:511) 02-12 20:16:09.398: E/AndroidRuntime(4922): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793) 02-12 20:16:09.398: E/AndroidRuntime(4922): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560) 02-12 20:16:09.398: E/AndroidRuntime(4922): at dalvik.system.NativeStart.main(Native Method)
Aunque ni siquiera toqué esta clase, la línea CheckPasswordActivity: 130 a la que se refiere es simplemente:
@Override public boolean onCreateOptionsMenu(Menu menu) { MenuInflater inflater = getSupportMenuInflater(); inflater.inflate(R.menu.menu_check_password, menu); return true; }
- Cómo probar con Espresso un PendingIntent generado por TaskStackBuilder
- ActivityUnitTestCase y Actividad # runOnUiThread
- Java.lang.ClassNotFoundException: android.R
- Prueba de unidades de Android: mejores prácticas cuando el código hace referencia a clases de android
- Excluir el dispositivo de prueba del registro de Firebase Analytics
- Prueba de las suscripciones de compra de IAP / In-App de Android
- Mockito AbstractMethodError en initMocks
- No hay error aún Android Studio dice que "no se encontraron pruebas"
Finalmente he encontrado una solución. El problema fue con las dependencias de hecho, todavía se desconoce por qué se utiliza para trabajar y luego repentinamente se negó, pero aquí es cómo las dependencias deben verse como para su módulo de prueba:
Por lo tanto, todo lo necesario para asegurarse de que todas sus bibliotecas y bibliotecas de proyectos estén listadas para su módulo de prueba y marcadas como "Proporcionadas" excepto Robotium lib, que es "Compilar".
En mi caso, se debe a los frascos duplicados que se incluyen.
Sobre la base de su otra pregunta … Creo que tengo algo de una configuración similar a la que … Aquí es más o menos cómo se establecen mis dependencias (leer sub-elementos como dependencias)
- ActionBarSherlock
- android-support-v4
- Módulo Android
- ActionBarSherlock
- android-support-v4
- Prueba de unidad
- robocio
- Módulo de Android
Todas las dependencias están configuradas como "compilar"
Utilizo ActionBarSherlock del código de fuente y ese módulo tiene "es un proyecto de la biblioteca" comprobado.
Acabo de tener el mismo problema tratar de hacer a continuación, ya que resolvió el problema.
Quitar android-support-v4 lib de su proyecto de prueba (o cualquier lib que se duplica para esa materia). Limpie los proyectos y construirlos de nuevo.
Agregue la línea siguiente:
manifestmerger.enabled=true
al archivo project.properties de su proyecto de aplicación.
Hizo el arreglo para mí 🙂 Tenía un proyecto con un proyecto de la biblioteca
- Android.view.inflateexception binario archivo xml línea # 1 error inflar clase android.widget.relativeLayout
- Keytool Signing Problem: Keystore fue manipulado, o la contraseña fue incorrecta