Join FlipAndroid.COM Telegram Group: https://t.me/joinchat/F_aqThGkhwcLzmI49vKAiw


La prueba de Junit de Android falla con "Sólo el subproceso original que creó una jerarquía de vistas puede tocar sus vistas."

Soy muy nuevo en Android y estoy escribiendo algunas pruebas básicas de Android usando Robotium y esto falla con la excepción como

"android.view.ViewRoot$CalledFromWrongThreadException: Only the original thread that created a view hierarchy can touch its views." 

A continuación se muestra la descripción básica de los cuadros de prueba: –

  • OnCreate no se llama cuando la pantalla gira - Android
  • ¿Dónde está la ubicación de mi tarjeta SD en 4.4.2?
  • ¿Es posible crear una aplicación de navegación GPS turn-by-turn en Android con Google Maps?
  • ¿Cómo decirle a ProGuard que ofusque métodos y nombres de clase?
  • Cómo crear un método para el método de cálculo de edad en android
  • Error de carga de Eclipse soundpool
  • caso de prueba:-

     public void testSearch() { Activity a = getActivity(); SearchItemActivity search = new SearchItemActivity(solo); search.searchText("ipod", a); } SearchItemActivity.searchText(String) is defined as public void searchText(final String search, Activity act) { Button v = (Button) act .findViewById(com.test.mobile.R.id.text_search_field); ((Button) v).setText(""); ((Button) v).setText(search); solo.sendKey(Solo.ENTER); solo.waitForActivity("FoundItemdDetailActivity"); solo.assertCurrentActivity("Expected FoundItemDetail activity","FoundItemdDetailActivity"); } 

    Cualquier sugerencia de cómo puedo modificar mi código será apreciada

  • ¿Cómo usar `adb` para instalar aplicaciones de desarrollo para un solo usuario?
  • El contenedor 'Android Dependencies' hace referencia a una biblioteca no existente 'facebook-android-sdk \ facebook \ bin \ com_facebook_android.jar'
  • Formateo de la descripción de la aplicación de Google Play
  • Cómo mostrar Toast en una clase ampliada por BaseAdapter Obtener método de vista
  • ¿Cómo obtener sólo frecuencia de audio y decibles del proyecto FFTBasedSpectrumAnalyzer?
  • El uso de ADB localmente en el dispositivo (loopback) no muestra ningún dispositivo
  • 2 Solutions collect form web for “La prueba de Junit de Android falla con "Sólo el subproceso original que creó una jerarquía de vistas puede tocar sus vistas."”

     @UiThreadTest public void yourMethod() { 

    La anotación @UiThreadTest indica a Android que construya este método para que se ejecute en el subproceso de la interfaz de usuario. Esto permite que el método cambie el estado del widget spinner en la aplicación bajo prueba. Este uso de @UiThreadTest muestra que, si es necesario, puede ejecutar un método completo en el subproceso de UI.

    http://developer.android.com/tools/testing/activity_test.html

    Supongo que está tratando de actualizar la interfaz de usuario desde un subproceso no UI. Así que para eso debes poner tu código dentro del runOnUiThread() .

     ActivityName.this.runOnUiThread(new Runnable() { public void run() { // your code to update the UI } }); 
    FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.