Kivy - 打包APK

0 投票
1 回答
781 浏览
提问于 2025-04-18 04:38

最初的问题

我用Python和Kivy库写了一个应用,现在想把它打包成APK,以便在我的安卓设备上运行。根据Kivy网站的建议,我运行了以下命令:

buildozer android debug 

但是我遇到了这个错误信息:

Traceback (most recent call last):
  File "/usr/local/bin/buildozer", line 9, in <module>
    load_entry_point('buildozer==0.15-dev', 'console_scripts', 'buildozer')()
  File "/usr/local/lib/python2.7/dist-packages/buildozer-0.15_dev-py2.7.egg/buildozer/scripts/client.py", line 13, in main
    Buildozer().run_command(sys.argv[1:])
  File "/usr/local/lib/python2.7/dist-packages/buildozer-0.15_dev-py2.7.egg/buildozer/__init__.py", line 957, in run_command
    self.target.run_commands(args)
  File "/usr/local/lib/python2.7/dist-packages/buildozer-0.15_dev-py2.7.egg/buildozer/target.py", line 85, in run_commands
    func(args)
  File "/usr/local/lib/python2.7/dist-packages/buildozer-0.15_dev-py2.7.egg/buildozer/target.py", line 95, in cmd_debug
    self.buildozer.prepare_for_build()
  File "/usr/local/lib/python2.7/dist-packages/buildozer-0.15_dev-py2.7.egg/buildozer/__init__.py", line 163, in prepare_for_build
    self.check_garden_requirements()
  File "/usr/local/lib/python2.7/dist-packages/buildozer-0.15_dev-py2.7.egg/buildozer/__init__.py", line 477, in check_garden_requirements
    self.state['cache.gardenlibs'] = garden_requirements
  File "/usr/local/lib/python2.7/dist-packages/buildozer-0.15_dev-py2.7.egg/buildozer/jsonstore.py", line 33, in __setitem__
    self.sync()
  File "/usr/local/lib/python2.7/dist-packages/buildozer-0.15_dev-py2.7.egg/buildozer/jsonstore.py", line 54, in sync
    with io.open(self.filename, 'w', encoding='utf-8') as fd:
IOError: [Errno 13] Permission denied: '/home/linuxlite/abc/.buildozer/state.db'

我知道这是一个权限问题,如果有人能给我一些解决这个问题的建议,我会非常感激。


编辑

在解决了权限问题后,我现在遇到了以下情况:

# Command failed: /usr/bin/python build.py --name myapp --version 1.2.0 --package org.test.myapp --private /home/linuxlite/abc/.buildozer/android/app --sdk 14 --minsdk 8 --orientation landscape debug

1 个回答

0

解决你最初问题的方法是使用 chown 命令,像这样:

sudo chown -R $USER:`groups | awk '{print $1}'` ~/.buildozer .

这个命令会把你全局的 buildozer 配置和你的项目的权限都重置为你自己的用户和组。从现在开始,请不要在使用 buildozer 时加上 sudo。实际上,除了安装以外,使用 sudo 是个坏习惯

至于你遇到的新问题,我不太清楚情况如何——我自己也碰到过同样的问题,所以才看到你的提问。如果我找到解决办法,会更新这个回答。

撰写回答