#python #kivy #buildozer
#python #kivy #buildozer
Вопрос:
Я получаю следующую ошибку при попытке упаковать мое приложение с помощью buildozer (виртуальная машина с Ubuntu):
ImportError: dlopen failed: "/data/data/org.test.myapp/files/app/_python_bundle/site-packages/grpc/_cython/cygrpc.so" is a 64-bit instead of a 32-bit
По-видимому, это потому, что мне нужно написать собственный рецепт для grpcio, поэтому я это сделал:
class GrpcioRecipe(CythonRecipe):
version = 'master'
url = 'https://github.com/grpc/grpc/archive/{version}.zip'
name = 'grpcio'
depends = ['six', 'futures', 'enum34']
recipe = GrpcioRecipe()
Я сохранил рецепт как grcpio_recipes.sh
, поместил его в папку с именем recipes и изменил файл buildozer.spec на # (str) The directory in which python-for-android should look for your own build recipes (if any) p4a.local_recipes = .buildozer/python-for-android/recipes
Тем не менее, я все еще получаю ту же ошибку, что и раньше. Добавил ли я рецепт в нужную область — похоже, он не использует мой пользовательский рецепт.
Ответ №1:
Вам нужно добавить этот код внутрь recipes/grpcio/__init__.py
и не забудьте добавить его в требования, а также добавить его в качестве рецепта
Комментарии:
1. Я уже сделал это, код здесь:
~/buildozer/my_app/p4a-recipes/grpcio/__init__.py
я вставил несколько операторов печати в приведенный выше код, чтобы проверить, выполняется ли он, но ничего не печатается. Возможно, я не говорю buildozer искать в нужном месте. Что я должен изменить в этом разделеbuildozer.spec
файла на основе указанного выше ПУТИ? В настоящее время для него установлено это:# (str) The directory in which python-for-android should look for your own build recipes (if any) p4a.local_recipes = .buildozer/python-for-android/recipes
2. Я только что заметил, что каталог в моем файле buildozer.spec был неправильным, поэтому я обновил его до следующего
# (str) The directory in which python-for-android should look for your own build recipes (if any) p4a.local_recipes = .buildozer/p4a-recipes
, но все равно получил ту же ошибку3. @CallumPurcell Вы уверены, что добавили grpcio и в требования? Также может быть полезно показывать журналы.
4. Да, grpcio является частью требований. Я отредактировал приведенное выше, чтобы включить изображения обратной трассировки, структуры папок и раздела требований. Поскольку я запускаю его на виртуальной машине Ubuntu, я не смог скопировать и вставить код из трассировки, поэтому использовал скриншоты, но дайте мне знать, если это необходимо, и я найду способ!