我正在尝试使用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
cython版本0.21已安装。
我已按照说明here卸载了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)?
如果我卸载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的工作版本?它是什么?能解决我的问题吗?
我跑步时
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不是目录
我现在已注释掉
#android.ndk_path
来自buildozer.spec
我现在收到错误:
答案 0 :(得分:0)
如何将buildozer定位于python 2.7?
#captain-marvel{
display:grid;
grid-template-columns: 1fr 1fr;
}
#captain-marvel-title{
grid-column:1;
background: red;
}
#captain-marvel-trailer{
grid-column:2;
background: blue;
}
或sudo pip2 install buildozer
,其中sudo pip install buildozer
指向Python 2版本。 pip
如何找到目标?
requirements = python2,kivy
或pip2 freeze
来确定安装是安装在Python 2还是Python 3中。滚动到顶部,寻找pip3 freeze
buildozer==0.39
它是否假定使用buildozer的工作版本?它是什么?会吗 解决我的问题?
Docker Buildozer映像正在使用requirements=...
。我相信它将解决您的问题。
Docker是供开发人员和系统管理员开发,部署, 并使用容器运行应用程序。使用Linux容器来 部署应用程序称为容器化。
Buildozer 0.40.dev0
中获取名为kivy/buildozer
的映像docker pull kivy/buildozer
docker run --volume "$HOME/.buildozer":/home/user/.buildozer --volume "$PWD":/home/user/hostcwd kivy/buildozer --version
docker run --volume "$HOME/.buildozer":/home/user/.buildozer --volume "$PWD":/home/user/hostcwd kivy/buildozer init
docker run --volume "$HOME/.buildozer":/home/user/.buildozer --volume "$PWD":/home/user/hostcwd kivy/buildozer android debug
您必须至少安装Cython,少量构建库和Java SDK。 Android SDK的某些二进制文件仍为32位,因此您只需要很少的32位库即可:
adb install bin/yourapp.apk
答案 1 :(得分:0)
我删除了此软件包的CMakeFiles目录,然后重新运行buildozer构建并通过了(在目录.buildozer / android / platform / build / build / other_builds / jpeg / armeabi-v7a__ndk_target_21 / jpeg中)