首页 > 解决方案 > 如何修复 Buildozer 构建失败并出现 cmake 错误

问题描述

我正在尝试使用 buildozer 构建 Kivy 应用程序。我已经升级到 buildozer 0.39。构建失败:

File "~/.local/lib/python2.7/site-packages/sh.py", line 672, in handle_command_exit_code
raise exc
sh.ErrorReturnCode_1: 


RAN: /bin/rm -f CMakeCache.txt CMakeFiles/

STDOUT:
/bin/rm: cannot remove 'CMakeFiles/': Is a directory

我已经安装了 cmake 版本 3.5.1

编辑 2019 年 4 月 18 日

已安装 cython 0.21 版。

我已经使用此处的说明卸载了 cmake 并重新安装了 3.14.2 版。

我已经删除了 .buildozer 目录。当我现在运行 buildozer I 时,会遇到以下问题:

RAN: ./autogen.sh

STDOUT:
./autogen.sh: 2: exec: autoreconf: not found

sudo apt install autoconf libtool

我现在得到错误:

STDOUT:
File "setup.py", line 159
print "--- using Tcl/Tk libraries at", TCL_ROOT
                                    ^
SyntaxError: Missing parentheses in call to 'print'. Did you mean print("--- using Tcl/Tk libraries at", TCL_ROOT)?

编辑 2019 年 4 月 19 日

如果我卸载 buildozer 它似乎是 python 2.7

/usr/local/lib/python2.7/dist-packages/buildozer-0.39.dist-info/*

我已经从 python 版本为 2.7.12 的目录安装了 buildozer

如何将 buildozer 定位到 python 2.7?

我怎样才能知道它是如何定位的?

我如何使用这些信息?

我曾尝试在带有 python 3 的 virtualenv 中使用 buildozer,但我得到了同样的错误。

我搞不清楚了。我看过Docker,但我不知道如何安装或使用它。它是否假定 buildozer 的工作版本?它是什么?它会解决我的问题吗?

编辑 2019 年 4 月 21 日

当我跑

docker run --volume "$HOME/.buildozer":/home/user/.buildozer --volume "$PWD":/home/user/hostcwd kivy/buildozer --version

'Buildozer 0.40.dev0'。

但是,当我尝试运行

docker run --volume "$HOME/.buildozer":/home/user/.buildozer --volume "$PWD":/home/user/hostcwd kivy/buildozer android debug

我得到错误:

将 /home/user/.buildozer/android/platform/android-ndk-r17c 重命名为 /home/jeff/.buildozer/crystax-ndk/crystax-ndk-10.3.2 失败,因为 /home/jeff/.buildozer/crystax- ndk/crystax-ndk-10.3.2 不是目录

编辑 2019 年 4 月 22 日

我现在已经注释掉了

#android.ndk_path 

来自 buildozer.spec

我现在得到错误:

cwd /home/user/hostcwd/.buildozer/android/platform/python-for-android

命令失败:/usr/bin/python3 -m pythonforandroid.toolchain create --dist_name=bfgApp --bootstrap=sdl2 --requirements=python2,kivy,pil,docutils,pathlib,html2rest --arch armeabi-v7a --copy-库 --color=always --storage-dir="/home/user/hostcwd/.buildozer/android/platform/build" --ndk-api=21

标签: cmakebuildozer

解决方案


我删除了这个包的 CMakeFiles 目录并重新运行 buildozer build 并且它通过了(在 dir .buildozer/android/platform/build/build/other_builds/jpeg/armeabi-v7a__ndk_target_21/jpeg 中)


推荐阅读