Buildozer命令失败

1 投票
2 回答
2618 浏览
提问于 2025-04-18 08:48

我正在尝试用Buildozer把一个简单的程序部署到我的Galaxy S5手机上。我运行了 buildozer --verbose android debug deploy run 这个命令,前面的步骤都很顺利,直到最后一部分:

Traceback (most recent call last):
  File "build.py", line 491, in <module>
    make_package(args)
  File "build.py", line 354, in make_package
    subprocess.check_call([ANT, arg])
  File "/usr/lib/python2.7/subprocess.py", line 511, in check_call
    raise CalledProcessError(retcode, cmd)
subprocess.CalledProcessError: Command '['ant', 'debug']' returned non-zero exit status 1
# Command failed: /usr/bin/python build.py --name 'School Organized' --version 1.2.0 --    package org.test.schoolorganized --private /home/jolechiw/School-Organized/.buildozer/android/app --sdk 14 --minsdk 8 --orientation landscape debug

输出的最后一部分可以在 这里 找到。我真的不明白“命令失败”是什么意思,可能是路径出错了?我也不太确定。

补充说明:

我不知道这是否重要,但我的应用源代码在 这里

2 个回答

0

今天我遇到了同样的构建问题。问题出在Java本身,而不是buildozer。

必须使用Java 7来完成:

piotr@jnlk ~/Kivy/SomeApp $ which java
/usr/bin/java

piotr@jnlk ~/Kivy/SomeApp $ java -version
java version "1.8.0_11"
Java(TM) SE Runtime Environment (build 1.8.0_11-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.11-b03, mixed mode)

piotr@jnlk ~/Kivy/SomeApp $ buildozer android debug
# Check configuration tokens
# Ensure build layout
# Check configuration tokens
# Preparing build
(...)
# Distribution already compiled, pass.
# Build the application #137
# Package the application
# Command failed: /usr/bin/python2 build.py (...) --orientation landscape debug

用Java 8构建会失败,但当我把JAVA_HOME这个变量改成Java 7的路径时:

piotr@jnlk ~/Kivy/SomeApp $ export JAVA_HOME=/usr/lib/jvm/java-1.7.0-openjdk-amd64
piotr@jnlk ~/Kivy/SomeApp $ export PATH=${JAVA_HOME}/bin:${PATH}

piotr@jnlk ~/Kivy/SomeApp $ java -version
java version "1.7.0_55"
OpenJDK Runtime Environment (IcedTea 2.4.7) (7u55-2.4.7-1ubuntu1~0.13.10.1)
OpenJDK 64-Bit Server VM (build 24.51-b03, mixed mode)

piotr@jnlk ~/Kivy/SomeApp $ buildozer android debug
piotr@jnlk ~/Kivy/SomeApp $ buildozer android debug
# Check configuration tokens
# Ensure build layout
# Check configuration tokens
# Preparing build
(...)
# Android packages installation done.
# Check application requirements
# Check garden requirements
# Compile platform
# Distribution already compiled, pass.
# Build the application #138
# Package the application
# Android packaging done!
# APK <some-app-name>.apk available in the bin directory

构建成功完成了 :)

0

我最近遇到了一个问题,我觉得和这个问题很像,问题的根源可能是我应用的名称

我认为在名称中不能有空格,比如 'School Organized'。试着去掉空格,或者用下划线(或者其他符号)替代它,在你的 buildozer.spec 文件中出现的所有地方都要改,然后重新构建一下。

我没有办法确认这是不是和我遇到的错误完全一样,但至少很相似,而这个调整确实解决了问题。

撰写回答