title: Getting thread error in ui automation android
body: <p>Getting error during ui automation in android app.I have implemented simple LoginScreen with two edit text one for email and one for password,one login button.When run the testing class i always get this type of thread error.Can anyone tell me why this error is coming.I have implemented same code for another project,that time also facing this error.</p>
  
  <p><strong>Error:-</strong></p>
  
  <pre><code>Thread[Compiler,5,system]
                                                                           dalvik.system.NativeStart.run(Native Method)
  
                                                                         Thread[Binder_2,5,main]
                                                                           dalvik.system.NativeStart.run(Native Method)
  
                                                                         Thread[ReferenceQueueDaemon,5,system]
                                                                           java.lang.Object.wait(Native Method)
                                                                           java.lang.Object.wait(Object.java:364)
                                                                           java.lang.Daemons$ReferenceQueueDaemon.run(Daemons.java:130)
                                                                           java.lang.Thread.run(Thread.java:841)
  
  
  
  Thread[Binder_1,5,main]
                                                                       dalvik.system.NativeStart.run(Native Method)
  
                                                                     Thread[FinalizerDaemon,5,system]
                                                                       java.lang.Object.wait(Native Method)
                                                                       java.lang.Object.wait(Object.java:401)
                                                                       java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:102)
                                                                       java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:73)
                                                                       java.lang.Daemons$FinalizerDaemon.run(Daemons.java:170)
                                                                       java.lang.Thread.run(Thread.java:841)
  
                                                                     Thread[FinalizerWatchdogDaemon,5,system]
                                                                       java.lang.Object.wait(Native Method)
                                                                       java.lang.Object.wait(Object.java:364)
                                                                       java.lang.Daemons$FinalizerWatchdogDaemon.waitForObject(Daemons.java:230)
                                                                       java.lang.Daemons$FinalizerWatchdogDaemon.run(Daemons.java:207)
                                                                       java.lang.Thread.run(Thread.java:841)
  
                                                                     Thread[Instr: android.support.test.runner.AndroidJUnitRunner,5,main]
                                                                       dalvik.system.VMStack.getThreadStackTrace(Native Method)
                                                                       java.lang.Thread.getStackTrace(Thread.java:579)
                                                                       java.lang.Thread.getAllStackTraces(Thread.java:521)
                                                                       android.support.test.runner.MonitoringInstrumentation.getThreadState(MonitoringInstrumentation.java:501)
                                                                       android.support.test.runner.MonitoringInstrumentation.dumpThreadStateToOutputs(MonitoringInstrumentation.java:496)
                                                                       android.support.test.runner.MonitoringInstrumentation.waitForActivitiesToComplete(MonitoringInstrumentation.java:307)
                                                                       android.support.test.runner.MonitoringInstrumentation.finish(MonitoringInstrumentation.java:273)
                                                                       android.support.test.runner.AndroidJUnitRunner.finish(AndroidJUnitRunner.java:282)
                                                                       android.support.test.runner.AndroidJUnitRunner.onStart(AndroidJUnitRunner.java:271)
                                                                       android.app.Instrumentation$InstrumentationThread.run(Instrumentation.java:1701)
  
                                                                     Thread[GC,5,system]
                                                                       dalvik.system.NativeStart.run(Native Method)
  
                                                                     Thread[JDWP,5,system]
                                                                       dalvik.system.NativeStart.run(Native Method)
  
                                                                     Thread[OkHttp ConnectionPool,5,main]
                                                                       java.lang.Object.wait(Native Method)
                                                                       java.lang.Thread.parkFor(Thread.java:1205)
                                                                       sun.misc.Unsafe.park(Unsafe.java:325)
                                                                       java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:197)
                                                                       java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(AbstractQueuedSynchronizer.java:2056)
                                                                       java.util.concurrent.LinkedBlockingQueue.poll(LinkedBlockingQueue.java:435)
                                                                       java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1035)
                                                                       java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1097)
                                                                       java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
                                                                       java.lang.Thread.run(Thread.java:841)
  
                                                                     Thread[hwuiTask1,5,main]
                                                                       dalvik.system.NativeStart.run(Native Method)
  
                                                                     Thread[Signal Catcher,5,system]
                                                                       dalvik.system.NativeStart.run(Native Method)
  
                                                                     Thread[main,5,main]
                                                                       android.os.BinderProxy.transact(Native Method)
                                                                       android.app.ActivityManagerProxy.finishActivity(ActivityManagerNative.java:2272)
                                                                       android.app.Activity.finish(Activity.java:4216)
                                                                       android.support.test.runner.MonitoringInstrumentation$ActivityFinisher.run(MonitoringInstrumentation.java:655)
                                                                       android.os.Handler.handleCallback(Handler.java:733)
                                                                       android.os.Handler.dispatchMessage(Handler.java:95)
                                                                       android.os.Looper.loop(Looper.java:136)
                                                                       android.app.ActivityThread.main(ActivityThread.java:5001)
                                                                       java.lang.reflect.Method.invokeNative(Native Method)
                                                                       java.lang.reflect.Method.invoke(Method.java:515)
                                                                       com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:785)
                                                                       com.android.internal.os.ZygoteInit.main(ZygoteInit.java:601)
                                                                       dalvik.system.NativeStart.main(Native Method)
  </code></pre>
  
  <p><strong>MainActivity.java</strong></p>
  
  <pre><code>public class MainActivity extends AppCompatActivity {
      Button btn_login;
      EditText et_username,et_password;
      @Override
      protected void onCreate(Bundle savedInstanceState) {
          super.onCreate(savedInstanceState);
          setContentView(R.layout.activity_main);
          btn_login=(Button)findViewById(R.id.btn_login);
          et_username=(EditText) findViewById(R.id.et_username);
          et_password=(EditText)findViewById(R.id.et_password);
          btn_login.setOnClickListener(new View.OnClickListener() {
              @Override
              public void onClick(View v) {
                  String email_enter = et_username.getText().toString();
                  String pass_enter = et_password.getText().toString();
                  userLogin(email_enter,pass_enter);
              }
          });
      }
  
      public void userLogin(String emailenter, String passenter) {
          Intent i = new Intent(MainActivity.this,SecondActivity.class);
          startActivity(i);
      }
  </code></pre>
  
  <p>MainActivityTest.java</p>
  
  <pre><code>public class MainActivityTest{
      UiDevice device;
      MainActivity loginScre;
      public void setUp() throws Exception {
          loginScre = new MainActivity();
      }
      @Test
      public void getIntValue() throws Exception {
          device = UiDevice.getInstance(getInstrumentation());
          device.pressHome();
          device.wait(Until.hasObject(By.desc("Apps")), 3000);
          UiObject2 appsButton = device.findObject(By.desc("Apps"));
          appsButton.click();
          device.wait(Until.hasObject(By.desc("LoginDemo")), 3000);
          UiObject2 calculatorApp = device.findObject(By.text("LoginDemo"));
          calculatorApp.click();
          UiObject editText = new UiObject(new UiSelector().resourceId("example.com.logindemo:id/et_username"));
          editText.setText("abc@gmail.com");
          String emainEnter = editText.getText().toString();
          UiObject psswrd = new UiObject(new UiSelector().resourceId("example.com.logindemo:id/et_password"));
          psswrd.click();
          psswrd.setText("abc23$");
          String psswrdEnter = "abc23$";
          device.wait(Until.hasObject(By.text("Login")), 1000);
          UiObject2 buttonlogin = device.findObject(By.text("Login"));
          buttonlogin.click();
          loginScre.userLogin(emainEnter, psswrdEnter);
      }
  </code></pre>