'getting exception "Error while connecting UiAutomation" on starting instrumentation using Runtime.getRuntime().exec
started the shell command from mainActivity.java, Runtime.getRuntime().exec("am instrument -w com.example.android.testing.uiautomator.BasicSample.test/androidx.test.runner.AndroidJUnitRunner");
and trying to get a UiDevice object in AndroidJUnit4 class as below,
@RunWith(AndroidJUnit4.class)
@SdkSuppress(minSdkVersion = 18)
public class ChangeTextBehaviorTest {
@Before
public void startMainActivityFromHomeScreen() throws UiObjectNotFoundException,
InterruptedException {
// Initialize UiDevice instance
Instrumentation instr = InstrumentationRegistry.getInstrumentation();
mDevice = UiDevice.getInstance(instr);
}
On running the instrumantation from adb, it works fine but through shell command from mainActivity it fails with below reason,
Line 14779: 02-20 12:27:45.655 7344 7411 I TestRunner: started: testChangeText_newActivity(com.example.android.testing.uiautomator.BasicSample.ChangeTextBehaviorTest)
Line 14784: 02-20 12:27:45.667 7344 7411 E TestRunner: failed: testChangeText_newActivity(com.example.android.testing.uiautomator.BasicSample.ChangeTextBehaviorTest)
Line 14785: 02-20 12:27:45.667 7344 7411 E TestRunner: ----- begin exception -----
Line 14786: 02-20 12:27:45.669 7344 7411 E TestRunner: java.lang.RuntimeException: Error while connecting UiAutomation@f398452[id=-1, flags=0]
Line 14787: 02-20 12:27:45.669 7344 7411 E TestRunner: at android.app.UiAutomation.connect(UiAutomation.java:252)
Line 14788: 02-20 12:27:45.669 7344 7411 E TestRunner: at android.app.Instrumentation.getUiAutomation(Instrumentation.java:2182)
Line 14789: 02-20 12:27:45.669 7344 7411 E TestRunner: at androidx.test.uiautomator.UiDevice.getUiAutomation(UiDevice.java:1129)
Line 14790: 02-20 12:27:45.669 7344 7411 E TestRunner: at androidx.test.uiautomator.QueryController.<init>(QueryController.java:95)
Line 14791: 02-20 12:27:45.669 7344 7411 E TestRunner: at androidx.test.uiautomator.UiDevice.<init>(UiDevice.java:109)
Line 14792: 02-20 12:27:45.669 7344 7411 E TestRunner: at androidx.test.uiautomator.UiDevice.getInstance(UiDevice.java:261)
Line 14793: 02-20 12:27:45.669 7344 7411 E TestRunner: at com.example.android.testing.uiautomator.BasicSample.ChangeTextBehaviorTest.startMainActivityFromHomeScreen(ChangeTextBehaviorTest.java:73)
Line 14794: 02-20 12:27:45.669 7344 7411 E TestRunner: at java.lang.reflect.Method.invoke(Native Method)
Line 14795: 02-20 12:27:45.669 7344 7411 E TestRunner: at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:59)
Line 14796: 02-20 12:27:45.669 7344 7411 E TestRunner: at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
Line 14797: 02-20 12:27:45.669 7344 7411 E TestRunner: at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:56)
Line 14798: 02-20 12:27:45.669 7344 7411 E TestRunner: at androidx.test.internal.runner.junit4.statement.RunBefores.evaluate(RunBefores.java:76)
Line 14799: 02-20 12:27:45.669 7344 7411 E TestRunner: at org.junit.runners.ParentRunner$3.evaluate(ParentRunner.java:306)
Line 14800: 02-20 12:27:45.669 7344 7411 E TestRunner: at org.junit.runners.BlockJUnit4ClassRunner$1.evaluate(BlockJUnit4ClassRunner.java:100)
Line 14801: 02-20 12:27:45.669 7344 7411 E TestRunner: at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:366)
Line 14802: 02-20 12:27:45.669 7344 7411 E TestRunner: at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:103)
Line 14803: 02-20 12:27:45.669 7344 7411 E TestRunner: at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:63)
Line 14804: 02-20 12:27:45.669 7344 7411 E TestRunner: at org.junit.runners.ParentRunner$4.run(ParentRunner.java:331)
Line 14805: 02-20 12:27:45.669 7344 7411 E TestRunner: at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:79)
Line 14806: 02-20 12:27:45.669 7344 7411 E TestRunner: at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:329)
Line 14807: 02-20 12:27:45.669 7344 7411 E TestRunner: at org.junit.runners.ParentRunner.access$100(ParentRunner.java:66)
Line 14808: 02-20 12:27:45.669 7344 7411 E TestRunner: at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:293)
Line 14809: 02-20 12:27:45.669 7344 7411 E TestRunner: at org.junit.runners.ParentRunner$3.evaluate(ParentRunner.java:306)
Line 14810: 02-20 12:27:45.669 7344 7411 E TestRunner: at org.junit.runners.ParentRunner.run(ParentRunner.java:413)
Line 14811: 02-20 12:27:45.669 7344 7411 E TestRunner: at androidx.test.ext.junit.runners.AndroidJUnit4.run(AndroidJUnit4.java:162)
Line 14812: 02-20 12:27:45.669 7344 7411 E TestRunner: at org.junit.runners.Suite.runChild(Suite.java:128)
Line 14813: 02-20 12:27:45.669 7344 7411 E TestRunner: at org.junit.runners.Suite.runChild(Suite.java:27)
Line 14814: 02-20 12:27:45.669 7344 7411 E TestRunner: at org.junit.runners.ParentRunner$4.run(ParentRunner.java:331)
Line 14815: 02-20 12:27:45.669 7344 7411 E TestRunner: at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:79)
Line 14816: 02-20 12:27:45.669 7344 7411 E TestRunner: at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:329)
Line 14817: 02-20 12:27:45.669 7344 7411 E TestRunner: at org.junit.runners.ParentRunner.access$100(ParentRunner.java:66)
Line 14818: 02-20 12:27:45.669 7344 7411 E TestRunner: at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:293)
Line 14819: 02-20 12:27:45.669 7344 7411 E TestRunner: at org.junit.runners.ParentRunner$3.evaluate(ParentRunner.java:306)
Line 14820: 02-20 12:27:45.669 7344 7411 E TestRunner: at org.junit.runners.ParentRunner.run(ParentRunner.java:413)
Line 14821: 02-20 12:27:45.669 7344 7411 E TestRunner: at org.junit.runner.JUnitCore.run(JUnitCore.java:137)
Line 14822: 02-20 12:27:45.669 7344 7411 E TestRunner: at org.junit.runner.JUnitCore.run(JUnitCore.java:115)
Line 14823: 02-20 12:27:45.669 7344 7411 E TestRunner: at androidx.test.internal.runner.TestExecutor.execute(TestExecutor.java:56)
Line 14824: 02-20 12:27:45.669 7344 7411 E TestRunner: at androidx.test.runner.AndroidJUnitRunner.onStart(AndroidJUnitRunner.java:439)
Line 14825: 02-20 12:27:45.669 7344 7411 E TestRunner: at android.app.Instrumentation$InstrumentationThread.run(Instrumentation.java:2211)
Line 14826: 02-20 12:27:45.669 7344 7411 E TestRunner: Caused by: android.os.DeadObjectException
Line 14827: 02-20 12:27:45.669 7344 7411 E TestRunner: at android.os.BinderProxy.transactNative(Native Method)
Line 14828: 02-20 12:27:45.669 7344 7411 E TestRunner: at android.os.BinderProxy.transact(BinderProxy.java:550)
Line 14829: 02-20 12:27:45.669 7344 7411 E TestRunner: at android.app.IUiAutomationConnection$Stub$Proxy.connect(IUiAutomationConnection.java:422)
Line 14830: 02-20 12:27:45.669 7344 7411 E TestRunner: at android.app.UiAutomation.connect(UiAutomation.java:249)
Thannk you in Advance, little help if anyone already saw this will help to get through.
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
| Solution | Source |
|---|
