Я использовал python-for android tool и столкнулся с такими же ошибками. Но в моем случае приложение вообще не запускалось - зависало на заставке. Наконец-то я нашел решение. Вы можете попробовать так же.
Таким образом, мой конвейер был python3 + python-for-android (инструмент p4a, python-for-android , из главной ветви) + kivy (1.10.1)
Существует файл "_android.pyx" для рецепта сборки Android (полный список доступных рецептов p4a вы можете увидеть командой p4a recipes
). Этот файл, возможно, используется Buildozer и точно используется P4A во время процедуры сборки APK. Вам нужно это исправить.
Вы можете найти его местоположение в Ubuntu (например) через:
sudo updatedb
locate _android.pyx
Это путь должен быть примерно таким:
~/.local/lib/python3.6/site-packages/pythonforandroid/recipes/android/src/android/_android.pyx
Там должна быть строка:
python_act = autoclass(JAVA_NAMESPACE.decode('utf-8') + u'.PythonActivity')
так что вы должны изменить это - что-то вроде этого:
python_act = autoclass(str(JAVA_NAMESPACE) + u'.PythonActivity'),
или просто использовать жесткий код:
python_act = autoclass("org/kivy/android/PythonActivity")
Или в источниках может быть другое использование decode ().
Причина: различия между Python2 и Python3 - метод decode () может использоваться для эквивалентного двоичного типа данных в Python 2 или 3, но он не может использоваться текстовым типом данных последовательно между Python 2 и 3 потому что str в Python 3 не имеет метода декодирования, функция имеет другую реализацию в Python3. Более подробная информация здесь:
Pyporting Features
выпускает p4a's github
Надеюсь, это вам как-то поможет.