mobile-dev-inc / maestro

Painless Mobile UI Automation
https://maestro.mobile.dev/
Apache License 2.0
5.79k stars 270 forks source link

Failed to install apk when running the sample flow #703

Closed LordRaydenMK closed 1 year ago

LordRaydenMK commented 1 year ago

I was trying to run the sample maestro Flow and I got this error when executing:

maestro test android-flow.yaml

java.io.IOException: Failed to install apk /tmp/maestro-app6878593091663768796.apk: Connection reset by peer (Write failed)
    at maestro.drivers.AndroidDriver.install(AndroidDriver.kt:532)
    at maestro.drivers.AndroidDriver.installMaestroApks(AndroidDriver.kt:512)
    at maestro.drivers.AndroidDriver.open(AndroidDriver.kt:82)
    at maestro.Maestro$Companion.android(Maestro.kt:545)
    at maestro.Maestro$Companion.android$default(Maestro.kt:538)
    at maestro.cli.session.MaestroSessionManager.createMaestro(MaestroSessionManager.kt:150)
    at maestro.cli.session.MaestroSessionManager.access$createMaestro(MaestroSessionManager.kt:44)
    at maestro.cli.session.MaestroSessionManager$newSession$session$1.invoke(MaestroSessionManager.kt:79)
    at maestro.cli.session.MaestroSessionManager$newSession$session$1.invoke(MaestroSessionManager.kt:78)
    at maestro.cli.db.KeyValueStore.withExclusiveLock(KeyValueStore.kt:37)
    at maestro.cli.session.SessionStore.withExclusiveLock(SessionStore.kt:74)
    at maestro.cli.session.MaestroSessionManager.newSession(MaestroSessionManager.kt:78)
    at maestro.cli.session.MaestroSessionManager.newSession$default(MaestroSessionManager.kt:52)
    at maestro.cli.command.TestCommand.call(TestCommand.kt:115)
    at maestro.cli.command.TestCommand.call(TestCommand.kt:41)
    at picocli.CommandLine.executeUserObject(CommandLine.java:1933)
    at picocli.CommandLine.access$1200(CommandLine.java:145)
    at picocli.CommandLine$RunLast.executeUserObjectOfLastSubcommandWithSameParent(CommandLine.java:2332)
    at picocli.CommandLine$RunLast.handle(CommandLine.java:2326)
    at picocli.CommandLine$RunLast.handle(CommandLine.java:2291)
    at picocli.CommandLine$AbstractParseResultHandler.execute(CommandLine.java:2159)
    at maestro.cli.DisableAnsiMixin$Companion.executionStrategy(DisableAnsiMixin.kt:22)
    at picocli.CommandLine.execute(CommandLine.java:2058)
    at maestro.cli.AppKt.main(App.kt:122)
Caused by: java.net.SocketException: Connection reset by peer (Write failed)
    at java.base/java.net.SocketOutputStream.socketWrite0(Native Method)
    at java.base/java.net.SocketOutputStream.socketWrite(SocketOutputStream.java:110)
    at java.base/java.net.SocketOutputStream.write(SocketOutputStream.java:150)
    at okio.OutputStreamSink.write(JvmOkio.kt:57)
    at okio.AsyncTimeout$sink$1.write(AsyncTimeout.kt:99)
    at okio.RealBufferedSink.emitCompleteSegments(RealBufferedSink.kt:255)
    at okio.RealBufferedSink.writeAll(RealBufferedSink.kt:194)
    at dadb.Dadb$DefaultImpls.install(Dadb.kt:81)
    at dadb.adbserver.AdbServerDadb.install(AdbServer.kt:118)
    at maestro.drivers.AndroidDriver.install(AndroidDriver.kt:530)
    ... 23 more

turns out, the previous step adb install sample.apk was the issue. This starts the ADB server and block DADB from connecting to the emulator.

Running adb kill-server before running the flow fixes the issue. Might be worth mentioning in the documentation.

dmitry-zaitsev commented 1 year ago

cc @Leland-Takamine

axelniklasson commented 1 year ago

Duplicate of https://github.com/mobile-dev-inc/maestro/issues/829

github-actions[bot] commented 3 months ago

This issue has been automatically locked since there has not been any recent activity after it was closed. If you are still experiencing a similar problem, please file a new issue. Make sure to follow the template and provide all the information necessary to reproduce the issue. Thank you for helping keep us our issue tracker clean!