title: Android reports "Error=Unable to find instrumentation info for: ComponentInfo {}"
body: <p>There are a lot of topics/questions regard this issue on stackoverflow (such as <a href="https://stackoverflow.com/q/21294945/513413">Error=Unable to find instrumentation info for: ComponentInfo{ }</a>) and other website but the thing that make my problem different than others is I am working on automation. So let me give you more details.</p>
  
  <p>I have no problem when I'm testing on local machine (I mean my laptop). I can run Espresso testing and all tests passes.</p>
  
  <p>Now, I want to run these tests on CI (Bitrise in my case). I create and run Emulator. I confirm there is no issue there. I have following script:</p>
  
  <pre><code>...
  # Check which instrumentation packages have been installed on your device, https://stackoverflow.com/a/23394559/513413
  echo ""
  echo "Check which instrumentation packages have been installed..."
  adb shell pm list instrumentation
  
  # Running tests
  echo ""
  echo "running test..."
  adb shell am instrument -w -r   -e debug false -e class my.package.name.MyActivityTest my.package.name.test/android.support.test.runner.AndroidJUnitRunner
  </code></pre>
  
  <p>This is my output from CI:</p>
  
  <pre><code>Check which instrumentation packages have been installed...
  instrumentation:com.android.emulator.smoketests/android.support.test.runner.AndroidJUnitRunner (target=com.android.emulator.smoketests)
  instrumentation:com.android.smoketest.tests/com.android.smoketest.SmokeTestRunner (target=com.android.smoketest)
  instrumentation:com.example.android.apis/.app.LocalSampleInstrumentation (target=com.example.android.apis)
  running test...
  INSTRUMENTATION_STATUS: id=ActivityManagerService
  INSTRUMENTATION_STATUS: Error=Unable to find instrumentation info for: ComponentInfo{my.package.name.test/android.support.test.runner.AndroidJUnitRunner}
  INSTRUMENTATION_STATUS_CODE: -1
  android.util.AndroidException: INSTRUMENTATION_FAILED: my.package.name.test/android.support.test.runner.AndroidJUnitRunner
      at com.android.commands.am.Am.runInstrument(Am.java:1093)
      at com.android.commands.am.Am.onRun(Am.java:371)
      at com.android.internal.os.BaseCommand.run(BaseCommand.java:47)
      at com.android.commands.am.Am.main(Am.java:100)
      at com.android.internal.os.RuntimeInit.nativeFinishInit(Native Method)
      at com.android.internal.os.RuntimeInit.main(RuntimeInit.java:251)
  </code></pre>
  
  <p>I have following line of code in <code>defaultConfig</code> of <code>app.gradle</code> file:</p>
  
  <pre><code>testInstrumentationRunner 'android.support.test.runner.AndroidJUnitRunner'
  </code></pre>
  
  <p>I have <code>android.support.test.runner.AndroidJUnitRunner</code> under my EditConfiguration as you see in the following link.</p>
  
  <p><a href="https://i.stack.imgur.com/0Ftly.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/0Ftly.png" alt="enter image description here"></a></p>
  
  <p>I guess my test fails because I don't have this command in my CI's emulator. So my question is how I can add it via command line? Is that possible?</p>
  
  <h1>Update</h1>
  
  <p>This is my full script.</p>
  
  <pre><code>#!/bin/bash
  
  # List of devices attached
  adb devices
  
  # List all *.apk files inside /bitrise/deploy path
  echo "List of all *.apk files in $BITRISE_DEPLOY_DIR"
  cd $BITRISE_DEPLOY_DIR &amp;&amp; ls
  
  # Push and Install main apk file
  echo ""
  echo "Pushing main apk at $BITRISE_APK_PATH to /data/local/tmp/my.package.name and install it..."
  adb push $BITRISE_APK_PATH /data/local/tmp/my.package.name
  adb shell pm install -r "/data/local/tmp/my.package.name"
  
  # Push and Install Test Unaligned apk file
  echo ""
  echo "Pushing test unaligned apk at $BITRISE_DEPLOY_DIR/my-app-debug-unaligned.apk to /data/local/tmp/my.package.name.test and install it..."
  adb push $BITRISE_DEPLOY_DIR/my-app-debug-unaligned.apk /data/local/tmp/my.package.name.test
  adb shell pm install -r "/data/local/tmp/my.package.name.test"
  
  # Check which instrumentation packages have been installed on your device, https://stackoverflow.com/a/23394559/513413
  echo ""
  echo "Check which instrumentation packages have been installed..."
  adb shell pm list instrumentation
  
  # Running tests
  echo ""
  echo "switch directory to $BITRISE_SOURCE_DIR"
  cd $BITRISE_SOURCE_DIR
  echo "running test..."
  adb shell am instrument -w -r -e debug false -e class my.package.name.path.MinHappyPathTest my.package.name.path/android.support.test.runner.AndroidJUnitRunner
  </code></pre>