Open loomdoom opened 1 year ago
@loomdoom Seeing the same issue , Are you able to resolve this issue?
I dont remember what finally made it to work but what actually worked for me looked like this:
init {
dadb.terminateApp("com.redacted.app.automatedTest")
appiumLocalServer = startHostServer()
var errorThrown = true
try {
val capabilities = DesiredCapabilities()
capabilities.setCapability(MobileCapabilityType.PLATFORM_NAME, "Android")
capabilities.setCapability(MobileCapabilityType.UDID, dadb.toString())
capabilities.setCapability(MobileCapabilityType.AUTOMATION_NAME, ANDROID_UIAUTOMATOR2)
//capabilities.setCapability(MobileCapabilityType.APP, apkPath)
capabilities.setCapability(MobileCapabilityType.NEW_COMMAND_TIMEOUT, 0)
//capabilities.setCapability(AndroidMobileCapabilityType.APP_PACKAGE, "com.redacted.app.automatedTest")
//capabilities.setCapability(MobileCapabilityType.NO_RESET, true)
extraCaps.asMap().forEach {
capabilities.setCapability(it.key, it.value)
}
val androidDriver = AndroidDriver(URL("http://0.0.0.0:$appiumPort"), capabilities).apply {
setSetting("driver", "compose")
}
installApp(androidDriver, apkPath)
androidDriver.activateApp("com.redacted.app.automatedTest")
driver = androidDriver
instrumentationClient = InstrumentationClient(instrumentationPort)
println(dadb.forward(instrumentationPort, 8080))
errorThrown = false
} catch (e: MalformedURLException) {
e.printStackTrace()
throw (e)
} catch (e: Exception) {
println(e.message)
throw (e)
} finally {
if (errorThrown) {
close()
} else {
instances.add(this)
}
}
}
there were other issues like e.g. app install uninstall that i had to do using adb(dadb variable in code above) client or running custom instrumentation http server(embedded in app's test variant and client impl using retrofit - InstrumentationClient in code above)
Appium 2.1.3 espresso-driver 2.25.6
I'm building espresso-server on the fly in test so i use it like this:
When it's run on device i get the following callstack:
Any ideas?