You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用WSL打包Kivy应用为APK时遇FileNotFoundError:找不到unzip

解决WSL中Buildozer打包Kivy项目时的unzip缺失问题

错误详情

执行Buildozer打包APK时出现以下错误:

# Unpacking Android NDK
# Run ['unzip', '-q', '/home/tarpetos/.buildozer/android/platform/android-ndk-r23b-linux.zip']
# Cwd /home/tarpetos/.buildozer/android/platform
Traceback (most recent call last):
  File "/usr/local/bin/buildozer", line 11, in <module>
    load_entry_point('buildozer==1.4.1.dev0', 'console_scripts', 'buildozer')()
  File "/usr/local/lib/python3.8/dist-packages/buildozer-1.4.1.dev0-py3.8.egg/buildozer/scripts/client.py", line 13, in main
    Buildozer().run_command(sys.argv[1:])
  File "/usr/local/lib/python3.8/dist-packages/buildozer-1.4.1.dev0-py3.8.egg/buildozer/__init__.py", line 1024, in run_command
    self.target.run_commands(args)
  File "/usr/local/lib/python3.8/dist-packages/buildozer-1.4.1.dev0-py3.8.egg/buildozer/target.py", line 93, in run_commands
    func(args)
  File "/usr/local/lib/python3.8/dist-packages/buildozer-1.4.1.dev0-py3.8.egg/buildozer/target.py", line 103, in cmd_debug
    self.buildozer.prepare_for_build()
  File "/usr/local/lib/python3.8/dist-packages/buildozer-1.4.1.dev0-py3.8.egg/buildozer/__init__.py", line 172, in prepare_for_build
    self.target.install_platform()
  File "/usr/local/lib/python3.8/dist-packages/buildozer-1.4.1.dev0-py3.8.egg/buildozer/targets/android.py", line 701, in install_platform
    self._install_android_ndk()
  File "/usr/local/lib/python3.8/dist-packages/buildozer-1.4.1.dev0-py3.8.egg/buildozer/targets/android.py", line 497, in _install_android_ndk
    self.buildozer.file_extract(archive,
  File "/usr/local/lib/python3.8/dist-packages/buildozer-1.4.1.dev0-py3.8.egg/buildozer/__init__.py", line 616, in file_extract
    self.cmd(["unzip", "-q", join(cwd, archive)], cwd=cwd)
  File "/usr/local/lib/python3.8/dist-packages/buildozer-1.4.1.dev0-py3.8.egg/buildozer/__init__.py", line 289, in cmd
    process = Popen(command, **kwargs)
  File "/usr/lib/python3.8/subprocess.py", line 858, in __init__
    self._execute_child(args, executable, preexec_fn, close_fds,
  File "/usr/lib/python3.8/subprocess.py", line 1704, in _execute_child
    raise child_exception_type(errno_num, err_msg, err_filename)
FileNotFoundError: [Errno 2] No such file or directory: 'unzip'

问题原因

unzip是Linux系统中用于解压ZIP压缩文件的命令行工具,你的WSL环境未安装该工具,导致Buildozer在解压Android NDK压缩包时失败。

解决步骤

在WSL终端中执行对应命令安装unzip:

  • 若使用Ubuntu/Debian系发行版:
sudo apt update && sudo apt install unzip -y
  • 若使用Fedora/RHEL系发行版:
sudo dnf install unzip -y

安装完成后,重新运行Buildozer打包命令即可。

音频文件打包补充提示

虽然本次错误与音频文件无关,但打包时需确保connection_voice.ogg被正确纳入APK。可在项目的buildozer.spec文件中添加以下配置:

# 包含指定格式的资源文件
source.include_exts = py,png,jpg,kv,atlas,ogg
# 或直接指定单个文件
source.include_files = connection_voice.ogg

内容的提问来源于stack exchange,提问作者tarpetos

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.12 04:10:20