AndroidHttpClient no encontrado (al ejecutar Robolectric)
He creado un proyecto muy simple para probar la integración de Robolectric + Data Binding + Retrolambda. Cuando ejecuto el traje de prueba, recibo el siguiente mensaje:
Error:(30, 30) Gradle: error: cannot access AndroidHttpClient class file for android.net.http.AndroidHttpClient not found
Esto es bastante extraño ya que no uso AndroidHttpClient en ninguna parte.
- Android - Prueba de un recurso de cadena con Robolectric
- ¿Puede jmockit y robolectric coexistir?
- ¿Cómo burlar el método antes de que se cree la actividad?
- Robolectric lanza Recursos $ NotFoundException al intentar acceder al recurso en la carpeta raw
- NoClassDefFoundError: org / json / JSONException - Android Roboelectric con gradle
El error se produce aquí, en la línea de "actividad":
@Before public void setup() { activity = Robolectric.setupActivity(MainActivity.class); // Error on this line textView = (TextView) shadowOf(activity).findViewById(R.id.textView); button = (Button) activity.findViewById(R.id.button); editText = (EditText) activity.findViewById(R.id.editText); }
El programa nunca usa AndroidHttpClient. De hecho, este es el programa completo:
@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); final ActivityMainBinding binding = DataBindingUtil.setContentView(this, R.layout.activity_main); binding.setUser(new User()); binding.button.setOnClickListener((v) -> { binding.textView.setText(String.format("Hello, %s!", binding.editText.getText())); binding.editText.setText(""); }); }
Ideas sobre lo que está mal?
- Cómo utilizar gradle-android-test-plugin
- Android: No se puede inflar la vista personalizada en la prueba Robolectric
- Volver a cargar variables estáticas al inicio de cada prueba de unidad
- Robolectric 3.0 InflateException con un fragmento personalizado de mapa
- Robolectric with Gradle: Recursos no encontrados
- ¿Puedo usar Cobertura en pruebas de unidad con PowerMock?
- Robolectric: 3.3.2 - Ningún fichero de manifiesto: build \ intermedios \ manifestos \ lleno \ debug \ src \ main \ AndroidManifest.xml
- SecurityProvider en Mockito Pruebas cuando se ejecuta junto a Robolectric
AndroidHttpClient
fue eliminado del SDK en v23 de las herramientas de compilación.
Como Robolectric está funcionando contra versiones anteriores, espera que esté allí, que es porqué usted está viendo este error.
Por ahora, puedes agregarlo de nuevo en:
android { useLibrary 'org.apache.http.legacy' }
Como se detalla a continuación .
Hay un boleto GitHub abierto para Robolectric para arreglar esto. Usted puede seguir el hilo / boleto aquí .
Acabo de añadir la clase falsa android.net.http.AndroidHttpClient
en mis fuentes de prueba. Y resolvió el problema por ahora. Esperando que Robolectric sea actualizado
Problema aparente y solución:
AndroidHttpClient se eliminó del SDK en el nivel 23 de API, mientras que Robolectric se configuró para ejecutar pruebas con SDK 21:
AndroidHttpClient was removed from the SDK in API Level 23
Pude resolver este problema creando una nueva clase llamada AndroidHttpClient
dentro de un nuevo paquete android.net.http
. Después de eso tuve que anotar mi clase de prueba de unidad con @Config(constants = BuildConfig.class, sdks = 21)
que ejecutará las pruebas contra una versión emulada de la API 21 que es la última versión de Android Robolectric soporta actualmente.
Hay actualmente un problema abierto aquí , así que una vez que lanzan la versión 3.1 todo debe estar bien y no tendrá que usar esta solución.
- Abrir una actividad de un CordovaPlugin
- Cómo comprobar si el teléfono está silenciado, vibrado o ruidoso en android