【问题标题】:Kivy buildozer ImportError grpc custom recipeKivy buildozer ImportError grpc 自定义配方
【发布时间】:2021-02-28 01:30:52
【问题描述】:

尝试使用 buildozer(带有 Ubuntu 的 VM)打包我的应用程序时出现以下错误:

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

但是,我仍然遇到与以前相同的错误。我是否将食谱添加到了正确的区域 - 它似乎没有使用我的自定义食谱。

【问题讨论】:

    标签: python kivy buildozer


    【解决方案1】:

    您需要在recipes/grpcio/__init__.py 中添加此代码 除了将其添加为配方之外,不要忘记将其添加到需求中

    【讨论】:

    • 我已经这样做了,代码在这里:~/buildozer/my_app/p4a-recipes/grpcio/__init__.py 我在上面的代码中放了一些打印语句,看看它是否正在运行,但没有打印出来。可能是我没有告诉 buildozer 在正确的地方寻找。我应该如何根据上述 PATH 更改 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
    • 我刚刚注意到我的 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,但仍然出现相同的错误
    • @CallumPurcell 你确定你也在需求中添加了 grpcio 吗?同时显示日志可能会有所帮助。
    • 是的,grpcio 是要求的一部分。我已经编辑了上面的内容,包括回溯、文件夹结构和需求部分的图像。当我在 Ubuntu 虚拟机上运行它时,我无法从回溯中复制和粘贴代码,因此使用了屏幕截图,但如果需要,请告诉我,我会找到方法!
    猜你喜欢
    • 1970-01-01
    • 2017-04-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-10
    • 1970-01-01
    • 2015-05-25
    • 2014-10-16
    相关资源
    最近更新 更多