Kivy - 打包APK
最初的问题
我用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
是个坏习惯。
至于你遇到的新问题,我不太清楚情况如何——我自己也碰到过同样的问题,所以才看到你的提问。如果我找到解决办法,会更新这个回答。