Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/358.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android “Kivy和buildozer”;“拒绝许可”;_Android_Python_Kivy - Fatal编程技术网

Android “Kivy和buildozer”;“拒绝许可”;

Android “Kivy和buildozer”;“拒绝许可”;,android,python,kivy,Android,Python,Kivy,几天前,我进入了Android应用程序的创建。我了解了基维。这让我不知所措,所以我决定坚持下去,并尝试设计一些应用程序。开发团队提供了Buildozer来轻松地为Android构建应用程序,但我还没有做到这一步 在为Android创建应用程序的过程中,我遇到了两个错误,因为我不知道它们是否相关,所以我将同时显示这两个错误 第一个错误 当我在Linux(Ubuntu)上运行我的应用程序时,我遇到了一个错误,尽管这个应用程序运行正常,看起来没有问题。错误日志: Exception in threa

几天前,我进入了Android应用程序的创建。我了解了基维。这让我不知所措,所以我决定坚持下去,并尝试设计一些应用程序。开发团队提供了Buildozer来轻松地为Android构建应用程序,但我还没有做到这一步

在为Android创建应用程序的过程中,我遇到了两个错误,因为我不知道它们是否相关,所以我将同时显示这两个错误

第一个错误

当我在Linux(Ubuntu)上运行我的应用程序时,我遇到了一个错误,尽管这个应用程序运行正常,看起来没有问题。错误日志:

 Exception in thread Thread-1:
 Traceback (most recent call last):
   File "/usr/lib/python2.7/threading.py", line 808, in __bootstrap_inner
     self.run()
   File "/usr/lib/python2.7/threading.py", line 761, in run
     self.__target(*self.__args, **self.__kwargs)
   File "/usr/lib/python2.7/dist-packages/kivy/input/providers/mtdev.py", line 193, in _thread_run
     _device = Device(_fn)
   File "/usr/lib/python2.7/dist-packages/kivy/lib/mtdev.py", line 131, in __init__
     self._fd = os.open(filename, os.O_NONBLOCK | os.O_RDONLY)
 OSError: [Errno 13] Permission denied: '/dev/input/event7'
第二个错误

我已经使用sudo-pip-install-buildozer安装了
buildozer
。当我尝试使用
buildozer init
时,出现以下错误:

Traceback (most recent call last):
  File "/usr/local/bin/buildozer", line 5, in <module>
    from pkg_resources import load_entry_point
  File "/usr/lib/python2.7/dist-packages/pkg_resources.py", line 2825, in <module>
    add_activation_listener(lambda dist: dist.activate())
  File "/usr/lib/python2.7/dist-packages/pkg_resources.py", line 710, in subscribe
    callback(dist)
  File "/usr/lib/python2.7/dist-packages/pkg_resources.py", line 2825, in <lambda>
    add_activation_listener(lambda dist: dist.activate())
  File "/usr/lib/python2.7/dist-packages/pkg_resources.py", line 2257, in activate
    self.insert_on(path)
  File "/usr/lib/python2.7/dist-packages/pkg_resources.py", line 2364, in insert_on
    self.check_version_conflict()
  File "/usr/lib/python2.7/dist-packages/pkg_resources.py", line 2403, in check_version_conflict
    for modname in self._get_metadata('top_level.txt'):
  File "/usr/lib/python2.7/dist-packages/pkg_resources.py", line 2251, in _get_metadata
    for line in self.get_metadata_lines(name):
  File "/usr/lib/python2.7/dist-packages/pkg_resources.py", line 1219, in get_metadata_lines
    return yield_lines(self.get_metadata(name))
  File "/usr/lib/python2.7/dist-packages/pkg_resources.py", line 1211, in get_metadata
    return self._get(self._fn(self.egg_info,name))
  File "/usr/lib/python2.7/dist-packages/pkg_resources.py", line 1326, in _get
    stream = open(path, 'rb')
IOError: [Errno 13] Permission denied: '/usr/local/lib/python2.7/dist-packages/google_api_python_client-1.2-py2.7.egg/EGG-INFO/top_level.txt'
回溯(最近一次呼叫最后一次):
文件“/usr/local/bin/buildozer”,第5行,在
从打包资源导入加载入口点
文件“/usr/lib/python2.7/dist packages/pkg_resources.py”,第2825行,在
添加\u激活\u侦听器(lambda dist:dist.activate())
文件“/usr/lib/python2.7/dist packages/pkg_resources.py”,第710行,在subscribe中
回调(dist)
文件“/usr/lib/python2.7/dist packages/pkg_resources.py”,第2825行,在
添加\u激活\u侦听器(lambda dist:dist.activate())
文件“/usr/lib/python2.7/dist packages/pkg_resources.py”,第2257行,在activate中
self.insert_on(路径)
文件“/usr/lib/python2.7/dist packages/pkg_resources.py”,第2364行,插入
self.check_version_conflict()
文件“/usr/lib/python2.7/dist packages/pkg_resources.py”,第2403行,检查版本冲突
对于self中的modname.\u获取\u元数据('top\u level.txt'):
文件“/usr/lib/python2.7/dist packages/pkg_resources.py”,第2251行,位于元数据中
对于self.get\u metadata\u行中的行(名称):
文件“/usr/lib/python2.7/dist packages/pkg_resources.py”,第1219行,在get_metadata_行中
返回yield_行(self.get_元数据(名称))
get_元数据中的文件“/usr/lib/python2.7/dist packages/pkg_resources.py”,第1211行
返回self.\u get(self.\u fn(self.egg\u信息,名称))
文件“/usr/lib/python2.7/dist packages/pkg_resources.py”,第1326行,在
流=打开(路径“rb”)
IOError:[Errno 13]权限被拒绝:'/usr/local/lib/python2.7/dist packages/google\u api\u python\u client-1.2-py2.7.egg/egg-INFO/top\u level.txt'
此错误阻止进程继续,并且
buildozer init
无法创建
buildozer.spec

更多信息

事实上,我已经尝试运行这两个应用程序,比如说
sudo main.py
sudo buildozer init
。起初,它似乎解决了这个问题,但当我第一次运行buildozerandroid debug deploy run时,它花了很长时间,不幸的是,我不得不杀死它

第二次我想把它做好,但奇怪的是,他们在游戏中不使用
sudo
。此外,我还发现到处都没有使用sudo运行buildozer。所以,我卸载了kivy和buildozer,然后重新安装,重新启动电脑。但一切都没有改变。也许我愚蠢的应用程序有一些问题(可能会解决第一个错误),但可能不会解决第二个问题。感谢您的帮助,我也可以提供更多信息

注意


我看过其他问题,但它们似乎解决了不同的问题。

第一个错误:不是问题。您的用户没有直接读取输入设备的权限,但通常这是因为它是一个笔记本触摸板,Kivy不需要读取(它将其用作鼠标,而不是触摸输入设备)。您可以安全地忽略这一点-如果它真的困扰您,您可以修改udev规则,让您的用户能够访问这些设备


第二个错误:显然是由于GoogleAPI包的问题。卸载该软件包修复了buildozer。您现在可能可以重新安装它了(可能是谷歌软件包没有正确安装,这让pkg_资源在扫描东西时感到困惑?)。如果没有,您可以尝试在virtualenv中安装该软件包,以将其与其他软件包分开。

第一个错误:没有问题。您的用户没有直接读取输入设备的权限,但通常这是因为它是一个笔记本触摸板,Kivy不需要读取(它将其用作鼠标,而不是触摸输入设备)。您可以放心地忽略这一点-如果它真的困扰您,您可以修改udev规则,让您的用户能够访问这些设备。@RyanP谢谢!我希望这不是什么关键的事情。我想我不需要修改规则有两个原因:1)不知道如何修改,2)我正在创建和Android应用程序。所以触摸板应该不重要。你对第二个问题有什么想法吗?第二个问题很奇怪。buildozer在您的错误中没有使用Google API。你在使用那个API包吗?也许你可以试着移除它?另外,我会继续重申:永远不要用sudo运行buildozerbuildozer对任何东西都不需要root访问权限,但赋予它root权限将破坏文件权限。既然您已经使用了sudo,那么应该修复权限-run
chmod-R username:group~/.buildozer
chmod-R username:group
(当然,用您的用户名和组替换username和group)。在其他(完全无关的)项目中,我从python访问GDrive,但我不记得安装过任何软件包。我一从学校回来,就会修改权限(“重新安装”没有帮助?)。