最近翻开了尘封已久的《标准日本语》,而学习语言,就不得不多听多练,教材提供了功能还不错的 APP,但如果能在电脑上运行显然更方便
(教材附赠光盘上的内容可以在一位热心 up 的 专栏 里查看)
参考 官方文档 ,先安装 waydroid
然后初始化
如果网络没有问题, waydroid 会自动下载所需要的镜像,否则需要手动下载后将镜像解压到特定目录,再使用 -f
参数设置使用本地镜像(可看官方文档)
记得启动相关的服务
1
2
| sudo systemctl stars waydroid-container.service
sudo systemctl enable waydroid-container.service
|
接下来就是排错时间 😎
会话启动错误
美滋滋地启动(不需要 sudo
,需要你 sudo
的时候程序会告诉你)
发现报错 RuntimeError: Command failed: % /usr/lib/waydroid/data/scripts/waydroid-net.sh start
,查看详细日志
发现如下信息
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
| (000848) [17:04:10] % /usr/lib/waydroid/data/scripts/waydroid-net.sh start
vnic is waydroid0
dnsmasq: failed to create listening socket for 192.168.240.1: Address already in use
Failed to setup waydroid-net.
Failed to setup waydroid-net.
(000848) [17:04:11] ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
(000848) [17:04:11] NOTE: The failed command's output is above the ^^^ line in the log file: /var/lib/waydroid/waydroid.log
(004399) [17:04:11] org.freedesktop.DBus.Python.RuntimeError: Traceback (most recent call last):
File "/usr/lib/python3.13/site-packages/dbus/service.py", line 712, in _message_cb
retval = candidate_method(self, *args, **keywords)
File "/usr/lib/waydroid/tools/actions/container_manager.py", line 31, in Start
do_start(self.args, session)
~~~~~~~~ ^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/waydroid/tools/actions/container_manager.py", line 138, in do_start
tools.helpers.run.user(args, command)
~~~~~~~~~~~~~~~~~~~~~~ ^^^^^^^^^^^^^^^
File "/usr/lib/waydroid/tools/helpers/run.py", line 58, in user
return tools.helpers.run_core.core(args, msg, cmd, working_dir, output,
~~~~~~~~~~~~~~~~~~~~~~~~~~~ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
output_return, check, sudo)
^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/waydroid/tools/helpers/run_core.py", line 343, in core
check_return_code(args, code, log_message)
~~~~~~~~~~~~~~~~~ ^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/waydroid/tools/helpers/run_core.py", line 219, in check_return_code
raise RuntimeError("Command failed: " + log_message)
RuntimeError: Command failed: % /usr/lib/waydroid/data/scripts/waydroid-net.sh start
(004399) [17:04:11] RuntimeError: Command failed: % /usr/lib/waydroid/data/scripts/waydroid-net.sh start
|
在网上找了一大圈,感觉这个问题各有各的解决方案,我在一个 issue 里找到了一个神奇的解决方案,经测试, clash-verge-rev 与 waydroid 存在冲突,在打开 waydroid 之前需要将 clash 临时关掉,之后再将 clash 重新打开即可 🐱
启动会话时命令会阻塞,不太方便,只要不报错我们就关掉,从程序菜单里面的 waydroid 快捷方式启动就好
apk 架构不支持
因为一般安装的都是 x86_64 的安卓,而我们的标日 app 只支持 arm(那为什么之前安装明日方舟没有问题呢 😎 ,大概是因为本生就支持 x86_64 ),通过搜索发现我们需要安装转译层, github 上提供了很好用的 waydroid 脚本 ,跟着 readme 来就行,我安装的是 libhoudini
,因为 libndk
会导致闪退
网络问题
文档里说,网络应该开箱即用,但是我却访问不到网络,这里可以通过
进行调试,经过 deepseek 排查发现可能是没有配置 nat 的缘故,通过以下命令可以解决
1
2
3
4
5
6
7
8
9
10
11
| # 添加正确的 NAT 规则(使用 192.168.240.0/24 ),这个是你 waydroid 启用的子网,不同机器上可能不一样
sudo iptables -t nat -A POSTROUTING -s 192.168.240.0/24 -j MASQUERADE
sudo iptables -A FORWARD -i waydroid0 -j ACCEPT
sudo iptables -A FORWARD -o waydroid0 -j ACCEPT
# 保存规则(确保安装 iptables)
sudo iptables-save | sudo tee /etc/iptables/iptables.rules
# 重启服务使配置生效
sudo systemctl restart iptables
sudo systemctl restart waydroid-container
|
可能还需要配置服务让每次开机时生效,我自己一连上网就把离线资源下好了
声音问题
发现没有声音,鼓捣一会发现是声音太小,去安卓设置里面把媒体声音调大点 😆
tips
可以通过
1
| waydroid prop set persist.waydroid.multi_windows true
|
设置多窗口模式
