Киви и строитель «Разрешение лишено»

Несколько дней назад я попал в приложение для Android. Я узнал о Киви. Это простота переполнилась, поэтому я решил придерживаться этого и попытаться создать приложение. Команда Dev предлагает 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' 

Вторая ошибка

Я установил buildozer используя sudo pip install 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' 

Эта ошибка предотвращает выполнение процесса, и buildozer init не создает buildozer.spec .

Больше информации

На самом деле я попытался запустить оба приложения, допустим, sudo main.py и sudo buildozer init . Сначала это, казалось, решило проблему, но в первый раз, когда я запустил buildozer android debug deploy run его навсегда, и, к сожалению, мне пришлось его убить.

Во второй раз я хотел сделать это правильно, и мне было странно, что в этом примере они не используют sudo . Также я нашел везде НИКОГДА не запускал buildozer с sudo . Итак, я не знал, как киви, так и buildozer, и снова установил его, перезагрузив компьютер. Но ничего не изменилось. Возможно, у моего глупого приложения есть некоторые проблемы (которые могут решить первую ошибку), но, вероятно, не второй. Любая помощь оценивается – также я могу дать больше информации.

Заметка

Я просмотрел другие вопросы, но они, казалось, решали разные проблемы.

Первая ошибка: не проблема. У вашего пользователя нет доступа к прямому считыванию устройства ввода – но обычно это потому, что это тачпад для ноутбука, который Kivy не нуждается в чтении в любом случае (он использует его как мышь, а не сенсорное устройство ввода). Вы можете смело игнорировать это – если это вас действительно беспокоит, вы можете изменить правила udev, чтобы дать вашему пользователю доступ к этим устройствам.

Вторая ошибка: видимо, из-за проблемы с пакетом API Google. Удаление этого пакета исправляет файл buildozer. Возможно, вы сможете переустановить его сейчас (возможно, пакет Google не установлен правильно, что путало pkg_resources, когда оно сканировало вещи?). Если нет, вы можете попробовать установить этот пакет в virtualenv, чтобы отделить его от других пакетов.