kivy / buildozer

Generic Python packager for Android and iOS
https://buildozer.readthedocs.io
MIT License
1.73k stars 499 forks source link

Command '['ant', 'debug']' returned non-zero exit status 1 when building PIL library #406

Closed Scoppio closed 5 years ago

Scoppio commented 8 years ago

Debug overview of the failed build - failure started at -dex:

This is unfortunatelly keeping me from finishing a very important project, so any help is deeply appreciated :)

The build failure seens to be related to the compilation of one of Pillow's libraries. Specifically liblcms2-488a716d.so.2.0.8, which is shown imediatelly before the subprocess.CalledProcessError: Command '['and', 'debug']' returned non-zero exit status 1

environment - virtual box "kivy" lubuntu present on download section of the kivy site. Buildozer up to date. cpu i3, 8GB RAM, SO running the oracle VB is Windows 7.

Buildozer.specs follows in this topic

-dex:

      [dex] input: /home/kivy/Projects/Palette-sampler/.buildozer/android/platform/python-for-android/dist/goghspalette/bin/classes
      [dex] Converting compiled files and external libraries into /home/kivy/Projects/Palette-sampler/.buildozer/android/platform/python-for-android/dist/goghspalette/bin/classes.dex...
       [dx] Exception in thread "main" java.lang.UnsupportedClassVersionError: com/android/dx/command/Main : Unsupported major.minor version 52.0
       [dx]     at java.lang.ClassLoader.defineClass1(Native Method)
       [dx]     at java.lang.ClassLoader.defineClass(ClassLoader.java:800)
       [dx]     at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
       [dx]     at java.net.URLClassLoader.defineClass(URLClassLoader.java:449)
       [dx]     at java.net.URLClassLoader.access$100(URLClassLoader.java:71)
       [dx]     at java.net.URLClassLoader$1.run(URLClassLoader.java:361)
       [dx]     at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
       [dx]     at java.security.AccessController.doPrivileged(Native Method)
       [dx]     at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
       [dx]     at java.lang.ClassLoader.loadClass(ClassLoader.java:425)
       [dx]     at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
       [dx]     at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
       [dx]     at sun.launcher.LauncherHelper.checkAndLoadMain(LauncherHelper.java:482)

BUILD FAILED
/home/kivy/.buildozer/android/platform/android-sdk-21/tools/ant/build.xml:888: The following error occurred while executing this line:
/home/kivy/.buildozer/android/platform/android-sdk-21/tools/ant/build.xml:890: The following error occurred while executing this line:
/home/kivy/.buildozer/android/platform/android-sdk-21/tools/ant/build.xml:902: The following error occurred while executing this line:
/home/kivy/.buildozer/android/platform/android-sdk-21/tools/ant/build.xml:283: null returned: 1

Total time: 2 seconds
app/_applibs/PIL/EpsImagePlugin.pyo
assets/private.mp3: /home/kivy/Projects/Palette-sampler/.buildozer/android/app/_applibs/PIL/CurImagePlugin.pyo
assets/private.mp3: /home/kivy/Projects/Palette-sampler/.buildozer/android/app/_applibs/PIL/.libs/libwebp-c9f9408c.so.6.0.1
assets/private.mp3: /home/kivy/Projects/Palette-sampler/.buildozer/android/app/_applibs/PIL/.libs/libfreetype-6728d6ce.so.6.12.5
assets/private.mp3: /home/kivy/Projects/Palette-sampler/.buildozer/android/app/_applibs/PIL/.libs/libtiff-a8dfd9d2.so.5.2.4
assets/private.mp3: /home/kivy/Projects/Palette-sampler/.buildozer/android/app/_applibs/PIL/.libs/libopenjp2-59185378.so.2.1.0
assets/private.mp3: /home/kivy/Projects/Palette-sampler/.buildozer/android/app/_applibs/PIL/.libs/libjpeg-bcb94a84.so.9.2.0
assets/private.mp3: /home/kivy/Projects/Palette-sampler/.buildozer/android/app/_applibs/PIL/.libs/libpng16-4b619e46.so.16.25.0
assets/private.mp3: /home/kivy/Projects/Palette-sampler/.buildozer/android/app/_applibs/PIL/.libs/libwebpdemux-cf7700c3.so.2.0.0
assets/private.mp3: /home/kivy/Projects/Palette-sampler/.buildozer/android/app/_applibs/PIL/.libs/liblzma-f444c404.so.5.2.2
assets/private.mp3: /home/kivy/Projects/Palette-sampler/.buildozer/android/app/_applibs/PIL/.libs/libwebpmux-25a4b814.so.2.0.1
assets/private.mp3: /home/kivy/Projects/Palette-sampler/.buildozer/android/app/_applibs/PIL/.libs/libz-a147dcb0.so.1.2.3
assets/private.mp3: /home/kivy/Projects/Palette-sampler/.buildozer/android/app/_applibs/PIL/.libs/liblcms2-488a716d.so.2.0.8
Traceback (most recent call last):
  File "build.py", line 517, in <module>
    make_package(args)
  File "build.py", line 365, in make_package
    subprocess.check_call([ANT, arg])
  File "/usr/lib/python2.7/subprocess.py", line 540, in check_call
    raise CalledProcessError(retcode, cmd)
subprocess.CalledProcessError: Command '['ant', 'debug']' returned non-zero exit status 1
# Command failed: python build.py --name 'Goghs Palette' --version 0.1 --package gogh.scoppio.goghspalette --sdk 19 --minsdk 9 --private /home/kivy/Projects/Palette-sampler/.buildozer/android/app --orientation sensor debug
# 
# Buildozer failed to execute the last command
# The error might be hidden in the log above this error
# Please read the full log, and search for it before
# raising an issue with buildozer itself.
# In case of a bug report, please add a full log with log_level = 2
[app]

# (str) Title of your application

title = Goghs Palette

# (str) Package name

package.name = goghspalette

# (str) Package domain (needed for android/ios packaging)

package.domain = gogh.scoppio

# (str) Source code where the main.py live

source.dir = .

# (list) Source files to include (let empty to include all the files)

source.include_exts = py,png,jpg,kv,atlas

# (list) List of inclusions using pattern matching

#source.include_patterns = assets/*,images/*.png

# (list) Source files to exclude (let empty to not exclude anything)

#source.exclude_exts = spec

# (list) List of directory to exclude (let empty to not exclude anything)

#source.exclude_dirs = tests, bin

# (list) List of exclusions using pattern matching

#source.exclude_patterns = license,images/*/*.jpg

# (str) Application versioning (method 1)

version = 0.1

# (str) Application versioning (method 2)

# version.regex = __version__ = ['"](.*)['"]

# version.filename = %(source.dir)s/main.py

# (list) Application requirements

# comma seperated e.g. requirements = sqlite3,kivy

requirements = kivy,pillow

#, math, colorsys, random, collections

# (str) Custom source folders for requirements

# Sets custom source for any requirements with recipes

# requirements.source.kivy = ../../kivy

# (list) Garden requirements

#garden_requirements =

# (str) Presplash of the application

#presplash.filename = %(source.dir)s/data/presplash.png

# (str) Icon of the application

#icon.filename = %(source.dir)s/data/icon.png

# (str) Supported orientation (one of landscape, portrait or all)

orientation = portrait

# (list) List of service to declare

#services = NAME:ENTRYPOINT_TO_PY,NAME2:ENTRYPOINT2_TO_PY

#

# OSX Specific

#

#

# author = © Copyright Info

#

# Android specific

#

# (bool) Indicate if the application should be fullscreen or not

fullscreen = 1

# (list) Permissions

#android.permissions = INTERNET

# (int) Android API to use

#android.api = 19

# (int) Minimum API required

#android.minapi = 9

# (int) Android SDK version to use

android.sdk = 21

# (str) Android NDK version to use

#android.ndk = 9c

# (bool) Use --private data storage (True) or --dir public storage (False)

#android.private_storage = True

# (str) Android NDK directory (if empty, it will be automatically downloaded.)

#android.ndk_path =

# (str) Android SDK directory (if empty, it will be automatically downloaded.)

#android.sdk_path =

# (str) ANT directory (if empty, it will be automatically downloaded.)

#android.ant_path =

# (str) python-for-android git clone directory (if empty, it will be automatically cloned from github)

#android.p4a_dir =

# (list) python-for-android whitelist

#android.p4a_whitelist =

# (bool) If True, then skip trying to update the Android sdk

# This can be useful to avoid excess Internet downloads or save time

# when an update is due and you just want to test/build your package

# android.skip_update = False

# (str) Android entry point, default is ok for Kivy-based app

#android.entrypoint = org.renpy.android.PythonActivity

# (list) List of Java .jar files to add to the libs so that pyjnius can access

# their classes. Don't add jars that you do not need, since extra jars can slow

# down the build process. Allows wildcards matching, for example:

# OUYA-ODK/libs/*.jar

#android.add_jars = foo.jar,bar.jar,path/to/more/*.jar

# (list) List of Java files to add to the android project (can be java or a

# directory containing the files)

#android.add_src =

# (str) python-for-android branch to use, if not master, useful to try

# not yet merged features.

#android.branch = master

# (str) OUYA Console category. Should be one of GAME or APP

# If you leave this blank, OUYA support will not be enabled

#android.ouya.category = GAME

# (str) Filename of OUYA Console icon. It must be a 732x412 png image.

#android.ouya.icon.filename = %(source.dir)s/data/ouya_icon.png

# (str) XML file to include as an intent filters in <activity> tag

#android.manifest.intent_filters =

# (list) Android additionnal libraries to copy into libs/armeabi

#android.add_libs_armeabi = libs/android/*.so

#android.add_libs_armeabi_v7a = libs/android-v7/*.so

#android.add_libs_x86 = libs/android-x86/*.so

#android.add_libs_mips = libs/android-mips/*.so

# (bool) Indicate whether the screen should stay on

# Don't forget to add the WAKE_LOCK permission if you set this to True

#android.wakelock = False

# (list) Android application meta-data to set (key=value format)

#android.meta_data =

# (list) Android library project to add (will be added in the

# project.properties automatically.)

#android.library_references =

# (str) Android logcat filters to use

#android.logcat_filters = *:S python:D

# (bool) Copy library instead of making a libpymodules.so

#android.copy_libs = 1

#

# iOS specific

#

# (str) Path to a custom kivy-ios folder

#ios.kivy_ios_dir = ../kivy-ios

# (str) Name of the certificate to use for signing the debug version

# Get a list of available identities: buildozer ios list_identities

#ios.codesign.debug = "iPhone Developer: <lastname> <firstname> (<hexstring>)"

# (str) Name of the certificate to use for signing the release version

#ios.codesign.release = %(ios.codesign.debug)s

[buildozer]

# (int) Log level (0 = error only, 1 = info, 2 = debug (with command output))

log_level = 2

# (int) Display warning if buildozer is run as root (0 = False, 1 = True)

warn_on_root = 1

# (str) Path to build artifact storage, absolute or relative to spec file

# build_dir = ./.buildozer

# (str) Path to build output (i.e. .apk, .ipa) storage

# bin_dir = ./bin
Scoppio commented 8 years ago

I did a small test and removed the PIL requisite and watched to se if it would compile, but instead and another problem arouse, now with a file that I created. I made a kivy "behaviour.button" since I am using an older version of kivy due to the VirtualBox (it is a bit hard to install everything, so I am using the VB image). The behaviour.buttonB works giving the button behaviour to any widget I wish, and it is working fine in the computer. (it is almost a 100% copy of the ButtonBehaviour from kivy, since in the 1.7.2 this behaviour is not present)

it is inside the folder behaviour, there is the init.py file in the folder alongside the buttonB.py with the class ButtonBehaviour inside it.

I suspect that there is something wrong with my code that makes those crashes, but I can't tell what... the error happened both when running the post-compilation of my code and of Pillow libraries.

-dex:
      [dex] input: /home/kivy/Projects/Palette-sampler/.buildozer/android/platform/python-for-android/dist/goghspalette/bin/classes
      [dex] Converting compiled files and external libraries into /home/kivy/Projects/Palette-sampler/.buildozer/android/platform/python-for-android/dist/goghspalette/bin/classes.dex...
       [dx] Exception in thread "main" java.lang.UnsupportedClassVersionError: com/android/dx/command/Main : Unsupported major.minor version 52.0
       [dx]     at java.lang.ClassLoader.defineClass1(Native Method)
       [dx]     at java.lang.ClassLoader.defineClass(ClassLoader.java:800)
       [dx]     at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
       [dx]     at java.net.URLClassLoader.defineClass(URLClassLoader.java:449)
       [dx]     at java.net.URLClassLoader.access$100(URLClassLoader.java:71)
       [dx]     at java.net.URLClassLoader$1.run(URLClassLoader.java:361)
       [dx]     at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
       [dx]     at java.security.AccessController.doPrivileged(Native Method)
       [dx]     at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
       [dx]     at java.lang.ClassLoader.loadClass(ClassLoader.java:425)
       [dx]     at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
       [dx]     at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
       [dx]     at sun.launcher.LauncherHelper.checkAndLoadMain(LauncherHelper.java:482)

BUILD FAILED
/home/kivy/.buildozer/android/platform/android-sdk-21/tools/ant/build.xml:888: The following error occurred while executing this line:
/home/kivy/.buildozer/android/platform/android-sdk-21/tools/ant/build.xml:890: The following error occurred while executing this line:
/home/kivy/.buildozer/android/platform/android-sdk-21/tools/ant/build.xml:902: The following error occurred while executing this line:
/home/kivy/.buildozer/android/platform/android-sdk-21/tools/ant/build.xml:283: null returned: 1

Total time: 2 seconds
sets/private.mp3: /home/kivy/Projects/Palette-sampler/.buildozer/android/app/_temp.png
assets/private.mp3: /home/kivy/Projects/Palette-sampler/.buildozer/android/app/sitecustomize.pyo
assets/private.mp3: /home/kivy/Projects/Palette-sampler/.buildozer/android/app/palette/paletteSampler.pyo
assets/private.mp3: /home/kivy/Projects/Palette-sampler/.buildozer/android/app/palette/~temp.png
assets/private.mp3: /home/kivy/Projects/Palette-sampler/.buildozer/android/app/palette/test.jpg
assets/private.mp3: /home/kivy/Projects/Palette-sampler/.buildozer/android/app/palette/__init__.pyo
assets/private.mp3: /home/kivy/Projects/Palette-sampler/.buildozer/android/app/behavior/__init__.pyo
assets/private.mp3: /home/kivy/Projects/Palette-sampler/.buildozer/android/app/behavior/buttonB.pyo
Traceback (most recent call last):
  File "build.py", line 517, in <module>
    make_package(args)
  File "build.py", line 365, in make_package
    subprocess.check_call([ANT, arg])
  File "/usr/lib/python2.7/subprocess.py", line 540, in check_call
    raise CalledProcessError(retcode, cmd)
subprocess.CalledProcessError: Command '['ant', 'debug']' returned non-zero exit status 1
# Command failed: python build.py --name 'Goghs Palette' --version 0.1 --package gogh.scoppio.goghspalette --sdk 19 --minsdk 9 --private /home/kivy/Projects/Palette-sampler/.buildozer/android/app --orientation portrait debug
# 
# Buildozer failed to execute the last command
# The error might be hidden in the log above this error
# Please read the full log, and search for it before
# raising an issue with buildozer itself.
# In case of a bug report, please add a full log with log_level = 2
zoltan-fedor commented 7 years ago

Have you ever figured it out? It seems I have a similar problem. Strangely I even have it in a Python virtual env which compiled earlier just fine

-dex:
      [dex] input: /home/ilagi/Documents/Kivy_dev/kivy-test/.buildozer/android/platform/build/dists/myapp/bin/classes
      [dex] Found modified input file
      [dex] Converting compiled files and external libraries into /home/ilagi/Documents/Kivy_dev/kivy-test/.buildozer/android/platform/build/dists/myapp/bin/classes.dex...
       [dx] Exception in thread "main" java.lang.UnsupportedClassVersionError: com/android/dx/command/Main : Unsupported major.minor version 52.0
       [dx]     at java.lang.ClassLoader.defineClass1(Native Method)
       [dx]     at java.lang.ClassLoader.defineClass(ClassLoader.java:800)
       [dx]     at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
       [dx]     at java.net.URLClassLoader.defineClass(URLClassLoader.java:449)
       [dx]     at java.net.URLClassLoader.access$100(URLClassLoader.java:71)
       [dx]     at java.net.URLClassLoader$1.run(URLClassLoader.java:361)
       [dx]     at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
       [dx]     at java.security.AccessController.doPrivileged(Native Method)
       [dx]     at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
       [dx]     at java.lang.ClassLoader.loadClass(ClassLoader.java:425)
       [dx]     at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
       [dx]     at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
       [dx]     at sun.launcher.LauncherHelper.checkAndLoadMain(LauncherHelper.java:482)

BUILD FAILED
/home/ilagi/.buildozer/android/platform/android-sdk-20/tools/ant/build.xml:888: The following error occurred while executing this line:
/home/ilagi/.buildozer/android/platform/android-sdk-20/tools/ant/build.xml:890: The following error occurred while executing this line:
/home/ilagi/.buildozer/android/platform/android-sdk-20/tools/ant/build.xml:902: The following error occurred while executing this line:
/home/ilagi/.buildozer/android/platform/android-sdk-20/tools/ant/build.xml:283: null returned: 1

`

Scoppio commented 7 years ago

No solution so far... I will try a fresh install of kivy + buildozer to see if maybe the problem is related to the virtualbox image.

zoltan-fedor commented 7 years ago

I have just downloaded the kivy virtualbox image - had to update buildozer and install a few missing libraries in it, but then I could compile my project in that VM. I still don't know why it fails in my Linux Mint host, a few days ago that host could still compile, so my guess that some library update might have caused it, but no idea which one. In either case, I can compile in the kivy VM now, so I am good.

zoltan-fedor commented 7 years ago

Strange. Now the kivy VM which was just working is generating the same error too, even in a brand new project. Hmmm, what is going on here??? I have deleted /home/kivy/.buildozer so the SDKs got reinstalled and now it is working again. It seems something goes wrong in the /home/kivy/.buildozer I have done this in my LInux Mint host too and solved the problem there too, so it must be something with the /home/kivy/.buildozer getting something installed causing some incompatibility.

Scoppio commented 7 years ago

It's quite simple... it is not working properly, the kivy VM has an outdated version of the android to python, of the kivy, and has no buildozer, meaning that if you try to install many bad things may happen.

Now, if you do manage to install everything from scratch (good luck!) then you may have a shot. Until today I was unable to install kivy+android to python+buildozer+java sdk+java sre 7.0 (because the documentation say soo, it has to be the outdated version and it does not say anything about the newer versions working or not).

2016-10-23 22:10 GMT-02:00 Zoltan Fedor notifications@github.com:

Strange. Now the kivy VM which was just working is generating the same error too, even in a brand new project. What is going on here???

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/kivy/buildozer/issues/406#issuecomment-255624553, or mute the thread https://github.com/notifications/unsubscribe-auth/AL60mRBNqW4PNzAeSHKGhUgR0IAA1mavks5q2_eCgaJpZM4KM8fb .

Lucas S. Coppio

inclement commented 5 years ago

Closing as stale, use of ant was deprecated and the current gradle build seems to work fine.