求助为何同样的命令在 adb shell 里面没问题但是用 Java Runtime.getRuntime().exec 会卡住

查看 20|回复 0
作者:xwhxbg   
事情是这样的,楼主因为沉迷手机魔兽,想用 winlator 来运行 wine-ge 来在安卓手机上跑官服魔兽,但是官服魔兽只支持 wine-ge-8-25 ,因为 battle.net 这个登录器需要 secondary logon 这个功能,于是楼主就试图移植这个 wine-ge 上 winlator 。
winlator 是一个安卓写的 wine 配置管理工具,它自己手写了一个安卓 UIx11 之间的双向绑定,然后通过 java 的 Runtime.getRuntime().exec 来运行 wine 命令。
但是同样的命令用 adb shell 运行的时候会正常过,并且输出的 stdout 和 stderr 都很正常也很详细,但是到 java 这边就不行了
由于这玩意是自己实现的 x11 ,我启动的时候忽略了一个 opcode 117 是用来设置鼠标按键数量的,不知道是不是这个会卡住什么,另外就是 java 的 exec 不知为何无法正常读取到命令的 output ,原始代码在这里 https://github.com/FrontMage/winlator-855/blob/main-make-it-build/app/src/main/java/com/winlator/core/ProcessHelper.java 然后整个项目 clone 下来用 Android studio 打开 main-make-it-build 分支即可,注意可能要更新下 gradle 的版本
神通广大的 v2 大佬们有没有什么思路呢?

您需要登录后才可以回帖 登录 | 立即注册

返回顶部