Kivy-Ubuntu вылетает после "buildozer android logcat"
ПОСЛЕДНИЕ РЕДАКТИРОВАТЬ СЕГОДНЯ:
Создал репозиторий github для файлов журналов "buildozer android logcat" и "buildozer android debug deploy run logcat".
Удален мой ответ, где я разместил небольшую часть этого файла журнала.
РЕДАКТИРОВАТЬ 18.03.2018:
Я вернулся к проблеме, с которой я начал эту тему: я могу запустить свое приложение через Kivy Launcher, я могу создать файл apk из моего исходного кода, я могу установить этот файл apk. Но я не могу отладить этот файл apk (см. Мое оригинальное сообщение ниже).
Я обнаружил, что вы можете регистрировать историю терминала (команды + вывод), используя "script -a history_for_stackru.txt". Однако менее чем за одну минуту выполнения процесса "buildozer android logcat" выдает более 600000 (шестьсот тысяч) символов ведения журнала. И, очевидно, вопросы stackru имеют максимум 30000 символов.
Я опубликую первую часть файла журнала как ответ на мой собственный вопрос. Но, как я уже упоминал в своем первоначальном сообщении, вывод, по-моему, является очень повторяющимся и не связанным с моим приложением. Как запуск, так и сбой моего приложения (во время процесса logcat), по-видимому, не влияют на вывод в окне терминала. И я не могу исключить, что интересная часть (где мое приложение запускается / где оно падает) является частью журнала, который я могу опубликовать здесь.
Пожалуйста, дайте мне знать, если я напишу вам письмо с полным лог-файлом. Любые другие предложения приветствуются!
================================================== =======================
РЕДАКТИРОВАТЬ 18.03.2018:
Хорошо, я попробовал еще кое-что: я могу создать файл apk из приложения "touchtracer" на примере kivy. Во время "buildozer andoid debug" ошибок нет. Так что buildozer-vm вроде бы в порядке. Поскольку процесс сборки работает с примером приложения, очевидно, что проблема не в buildozer-vm, а в моем приложении / коде.
Приложение touchtracer зависит от математики и случайного модуля. Поэтому со второй попытки я включил эти библиотеки в файл buildozer.spec в строке требований. Делать то, что разрушает, нарушает процесс сборки. Поэтому я предполагаю, что стандартные библиотеки не нужно указывать в файле buildozer.spec. Это может быть первой причиной, по которой мой процесс сборки больше не работает (я указываю оператор, веб-браузер, random и т. Д. В файле buildozer.spec моей CalculationGame).
Тем временем я нашел файлы журналов Kivy-Launcher в файловой системе моего телефона: "kivy/CalculationGame/.kivy/logs/*. Txt". Они предполагают, что мое приложение вылетает из-за плохого super(). Начальные заявления. Я использую нотацию Python 3, где вам не нужно указывать подкласс в качестве параметра вызова super(). В Python 2, однако, вам нужно это сделать.
Должен ли я перейти на нотацию Python 2? Может быть, есть какая-то строка в файле buildozer.spec, где я могу определить, что kivy должен ожидать код Python 3?
Ради полноты я выкладываю файл журнала "Kivy Launcher", запускающий мою CalculationGame:
[INFO ] Logger: Record log in /storage/emulated/0/kivy/CalculationGame/.kivy/logs/kivy_18-03-16_5.txt
[INFO ] Kivy: v1.9.1
[INFO ] Python: v2.7.2 (default, Mar 20 2016, 23:30:13)
[GCC 4.8]
[INFO ] Factory: 179 symbols loaded
[WARNING ] stderr: /data/data/org.kivy.pygame/files/lib/python2.7/site-packages/kivy/core/image/img_pygame.py:13: RuntimeWarning: import cdrom: No module named cdrom
[WARNING ] stderr: (ImportError: No module named cdrom)
[INFO ] Image: Providers: img_tex, img_dds, img_gif, img_pygame, img_pil (img_ffpyplayer ignored)
[INFO ] Window: Provider: pygame
[INFO ] GL: OpenGL version <OpenGL ES 3.0 V@84.0 AU@05.00.02.006.020 (CL@)>
[INFO ] GL: OpenGL vendor <Qualcomm>
[INFO ] GL: OpenGL renderer <Adreno (TM) 320>
[INFO ] GL: OpenGL parsed version: 3, 0
[INFO ] GL: Texture max size <4096>
[INFO ] GL: Texture max units <16>
[INFO ] Shader: program: <--From Vertex Shader:
--From Fragment Shader:
Link was successful.>
[INFO ] Support: Android install hooks
[INFO ] Window: virtual keyboard not allowed, single mode, not docked
[INFO ] Text: Provider: pygame
[WARNING ] stderr: Traceback (most recent call last):
[WARNING ] stderr: File "main.py", line 497, in <module>
[WARNING ] stderr: CalculationApp().run()
[WARNING ] stderr: File "main.py", line 387, in __init__
[WARNING ] stderr: super().__init__(*args, **kwargs)
[WARNING ] stderr: TypeError: super() takes at least 1 argument (0 given)
================================================== ======================
РЕДАКТИРОВАТЬ 18.03.2018:
Я использую некоторые стандартные библиотеки Python в своем приложении (оператор, datetime, functools и т. Д.), И я не указал их в своем файле buildozer.spec. Я думаю, что это может быть причиной мгновенного сбоя приложения на моем телефоне.
Однако теперь, когда я указал библиотеки в своем файле buildozer.spec, процесс сборки "buildozer android debug" приводит к ошибке:
kivy@kivyvm:~$ cd Projects
kivy@kivyvm:~/Projects$ cd CalcGame
kivy@kivyvm:~/Projects/CalcGame$ ls
bin CalcGameStats.txt calculation.kv main.py Pipfile.lock
buildozer.spec calculation.ini json_settings.py Pipfile __pycache__
kivy@kivyvm:~/Projects/CalcGame$ buildozer android debug
# Check configu
ration tokens
# Ensure build layout
# Check configuration tokens
# Preparing build
# Check requirements for android
# Run 'dpkg --version'
# Cwd None
Debian 'dpkg' package management program version 1.18.10 (amd64).
This is free software; see the GNU General Public License version 2 or
later for copying conditions. There is NO warranty.
# Search for Git (git)
# -> found at /usr/bin/git
# Search for Cython (cython)
# -> found at /usr/local/bin/cython
# Search for Java compiler (javac)
# -> found at /usr/lib/jvm/java-8-openjdk-amd64/bin/javac
# Search for Java keytool (keytool)
# -> found at /usr/lib/jvm/java-8-openjdk-amd64/jre/bin/keytool
# Install platform
# Run 'pip install -q --user "appdirs" "colorama>=0.3.3" "sh>=1.10,<1.12.5" "jinja2" "six"'
# Cwd None
# Apache ANT found at /home/kivy/.buildozer/android/platform/apache-ant-1.9.4
# Android SDK found at /home/kivy/.buildozer/android/platform/android-sdk-20
# Android NDK found at /home/kivy/.buildozer/android/platform/android-ndk-r9c
# Check application requirements
# Check garden requirements
# Compile platform
# Run '/usr/bin/python -m pythonforandroid.toolchain create --dist_name=calcgame --bootstrap=sdl2 --requirements=kivy,operator,webbrowser,random,datetime,functools,android --arch armeabi-v7a --copy-libs --color=always --storage-dir=/home/kivy/Projects/CalcGame/.buildozer/android/platform/build'
# Cwd /home/kivy/Projects/CalcGame/.buildozer/android/platform/python-for-android-new-toolchain
[INFO]: Will compile for the following archs: armeabi-v7a
[INFO]: Found Android API target in $ANDROIDAPI
[INFO]: Available Android APIs are (19)
[INFO]: Requested API target 19 is available, continuing.
[INFO]: Found NDK dir in $ANDROIDNDK
[INFO]: Got NDK version from $ANDROIDNDKVER
[INFO]: Using Google NDK r9c
[INFO]: Found virtualenv at /usr/local/bin/virtualenv
[INFO]: ccache is missing, the build will not be optimized in the future.
[INFO]: Found the following toolchain versions: ['4.6', '4.8', 'clang3.3']
[INFO]: Picking the latest gcc toolchain, here 4.8
[WARNING]: Missing executable: autoconf is not installed
[WARNING]: Missing executable: automake is not installed
[WARNING]: Missing executable: libtoolize is not installed
[INFO]: No existing dists meet the given requirements!
[INFO]: No dist exists that meets your requirements, so one will be built.
[INFO]: Found multiple valid dependency orders:
[INFO]: [u'datetime', u'functools', 'hostpython2', u'operator', u'random', 'sdl2_image', 'sdl2_mixer', 'sdl2_ttf', u'webbrowser', 'python2', 'sdl2', 'six', u'android', 'pyjnius', u'kivy']
[INFO]: [u'datetime', u'functools', 'hostpython3crystax', u'operator', u'random', 'sdl2_image', 'sdl2_mixer', 'sdl2_ttf', u'webbrowser', 'python3crystax', 'sdl2', 'six', u'android', 'pyjnius', u'kivy']
[INFO]: [u'datetime', u'functools', 'hostpython2', u'operator', 'pygame_bootstrap_components', u'random', u'webbrowser', 'python2', 'sdl', 'six', 'pygame', 'pyjnius', u'android', u'kivy']
[INFO]: Using the first of these: [u'datetime', u'functools', 'hostpython2', u'operator', u'random', 'sdl2_image', 'sdl2_mixer', 'sdl2_ttf', u'webbrowser', 'python2', 'sdl2', 'six', u'android', 'pyjnius', u'kivy']
[INFO]: The selected bootstrap is sdl2_gradle
[INFO]: # Creating dist with sdl2_gradle bootstrap
[INFO]: Dist will have name calcgame and recipes (kivy, operator, webbrowser, random, datetime, functools, android)
[INFO]: Dist will also contain modules (operator, functools, random, webbrowser, datetime) installed from pip
[INFO]: -> running cp -r /home/kivy/Projects/Calc...(and 210 more)
[INFO]: -> directory context /home/kivy/Projects/CalcGame/.buildozer/android/platform/build/build/bootstrap_builds/sdl2_gradle-python2
[INFO]: <- directory context /home/kivy/Projects/CalcGame/.buildozer/android/platform/python-for-android-new-toolchain
[INFO]: Recipe build order is ['hostpython2', 'sdl2_image', 'sdl2_mixer', 'sdl2_ttf', 'python2', 'sdl2', 'six', u'android', 'pyjnius', u'kivy']
[INFO]: The requirements (datetime, functools, operator, random, webbrowser) were not found as recipes, they will be installed with pip.
[INFO]: # Downloading recipes
[INFO]: Downloading hostpython2
[INFO]: -> running mkdir -p /home/kivy/Projects/C...(and 62 more)
[INFO]: -> directory context /home/kivy/Projects/CalcGame/.buildozer/android/platform/build/packages/hostpython2
[INFO]: -> running basename https://python.org/ftp...(and 34 more)
[INFO]: hostpython2 download already cached, skipping
[INFO]: <- directory context /home/kivy/Projects/CalcGame/.buildozer/android/platform/python-for-android-new-toolchain
[INFO]: Downloading sdl2_image
[INFO]: -> running mkdir -p /home/kivy/Projects/C...(and 61 more)
[INFO]: -> directory context /home/kivy/Projects/CalcGame/.buildozer/android/platform/build/packages/sdl2_image
[INFO]: -> running basename https://www.libsdl.or...(and 52 more)
[INFO]: sdl2_image download already cached, skipping
[INFO]: <- directory context /home/kivy/Projects/CalcGame/.buildozer/android/platform/python-for-android-new-toolchain
[INFO]: Downloading sdl2_mixer
[INFO]: -> running mkdir -p /home/kivy/Projects/C...(and 61 more)
[INFO]: -> directory context /home/kivy/Projects/CalcGame/.buildozer/android/platform/build/packages/sdl2_mixer
[INFO]: -> running basename https://www.libsdl.or...(and 52 more)
[INFO]: sdl2_mixer download already cached, skipping
[INFO]: <- directory context /home/kivy/Projects/CalcGame/.buildozer/android/platform/python-for-android-new-toolchain
[INFO]: Downloading sdl2_ttf
[INFO]: -> running mkdir -p /home/kivy/Projects/C...(and 59 more)
[INFO]: -> directory context /home/kivy/Projects/CalcGame/.buildozer/android/platform/build/packages/sdl2_ttf
[INFO]: -> running basename https://www.libsdl.org...(and 48 more)
[INFO]: sdl2_ttf download already cached, skipping
[INFO]: <- directory context /home/kivy/Projects/CalcGame/.buildozer/android/platform/python-for-android-new-toolchain
[INFO]: Downloading python2
[INFO]: -> running mkdir -p /home/kivy/Projects/C...(and 58 more)
[INFO]: -> directory context /home/kivy/Projects/CalcGame/.buildozer/android/platform/build/packages/python2
[INFO]: -> running basename https://python.org/ftp...(and 34 more)
[INFO]: python2 download already cached, skipping
[INFO]: <- directory context /home/kivy/Projects/CalcGame/.buildozer/android/platform/python-for-android-new-toolchain
[INFO]: Downloading sdl2
[INFO]: -> running mkdir -p /home/kivy/Projects/C...(and 55 more)
[INFO]: -> directory context /home/kivy/Projects/CalcGame/.buildozer/android/platform/build/packages/sdl2
[INFO]: -> running basename https://www.libsdl.org...(and 26 more)
[INFO]: sdl2 download already cached, skipping
[INFO]: <- directory context /home/kivy/Projects/CalcGame/.buildozer/android/platform/python-for-android-new-toolchain
[INFO]: Downloading six
[INFO]: -> running mkdir -p /home/kivy/Projects/C...(and 54 more)
[INFO]: -> directory context /home/kivy/Projects/CalcGame/.buildozer/android/platform/build/packages/six
[INFO]: -> running basename https://pypi.python.or...(and 40 more)
[INFO]: six download already cached, skipping
[INFO]: <- directory context /home/kivy/Projects/CalcGame/.buildozer/android/platform/python-for-android-new-toolchain
[INFO]: Downloading android
[INFO]: Skipping android download as no URL is set
[INFO]: Downloading pyjnius
[INFO]: -> running mkdir -p /home/kivy/Projects/C...(and 58 more)
[INFO]: -> directory context /home/kivy/Projects/CalcGame/.buildozer/android/platform/build/packages/pyjnius
[INFO]: -> running basename https://github.com/kiv...(and 28 more)
[INFO]: pyjnius download already cached, skipping
[INFO]: <- directory context /home/kivy/Projects/CalcGame/.buildozer/android/platform/python-for-android-new-toolchain
[INFO]: Downloading kivy
[INFO]: -> running mkdir -p /home/kivy/Projects/C...(and 55 more)
[INFO]: -> directory context /home/kivy/Projects/CalcGame/.buildozer/android/platform/build/packages/kivy
[INFO]: -> running basename https://github.com/kiv...(and 25 more)
[INFO]: kivy download already cached, skipping
[INFO]: <- directory context /home/kivy/Projects/CalcGame/.buildozer/android/platform/python-for-android-new-toolchain
[INFO]: # Building all recipes for arch armeabi-v7a
[INFO]: # Unpacking recipes
[INFO]: Unpacking hostpython2 for armeabi-v7a
[INFO]: -> running basename https://python.org/ftp...(and 34 more)
[INFO]: -> directory context /home/kivy/Projects/CalcGame/.buildozer/android/platform/build/build/other_builds/hostpython2/desktop
[INFO]: hostpython2 is already unpacked, skipping
[INFO]: <- directory context /home/kivy/Projects/CalcGame/.buildozer/android/platform/python-for-android-new-toolchain
[INFO]: Unpacking sdl2_image for armeabi-v7a
[INFO]: -> running basename https://www.libsdl.or...(and 52 more)
[INFO]: -> directory context /home/kivy/Projects/CalcGame/.buildozer/android/platform/build/build/bootstrap_builds/sdl2_gradle-python2/jni
[INFO]: sdl2_image is already unpacked, skipping
[INFO]: <- directory context /home/kivy/Projects/CalcGame/.buildozer/android/platform/python-for-android-new-toolchain
[INFO]: Unpacking sdl2_mixer for armeabi-v7a
[INFO]: -> running basename https://www.libsdl.or...(and 52 more)
[INFO]: -> directory context /home/kivy/Projects/CalcGame/.buildozer/android/platform/build/build/bootstrap_builds/sdl2_gradle-python2/jni
[INFO]: sdl2_mixer is already unpacked, skipping
[INFO]: <- directory context /home/kivy/Projects/CalcGame/.buildozer/android/platform/python-for-android-new-toolchain
[INFO]: Unpacking sdl2_ttf for armeabi-v7a
[INFO]: -> running basename https://www.libsdl.org...(and 48 more)
work[INFO]: -> directory context /home/kivy/Projects/CalcGame/.buildozer/android/platform/build/build/bootstrap_builds/sdl2_gradle-python2/jni
[INFO]: sdl2_ttf is already unpacked, skipping
[INFO]: <- directory context /home/kivy/Projects/CalcGame/.buildozer/android/platform/python-for-android-new-toolchain
[INFO]: Unpacking python2 for armeabi-v7a
[INFO]: -> running basename https://python.org/ftp...(and 34 more)
[INFO]: -> directory context /home/kivy/Projects/CalcGame/.buildozer/android/platform/build/build/other_builds/python2/armeabi-v7a
[INFO]: python2 is already unpacked, skipping
[INFO]: <- directory context /home/kivy/Projects/CalcGame/.buildozer/android/platform/python-for-android-new-toolchain
[INFO]: Unpacking sdl2 for armeabi-v7a
[INFO]: -> running basename https://www.libsdl.org...(and 26 more)
[INFO]: -> directory context /home/kivy/Projects/CalcGame/.buildozer/android/platform/build/build/bootstrap_builds/sdl2_gradle-python2/jni
[INFO]: sdl2 is already unpacked, skipping
[INFO]: <- directory context /home/kivy/Projects/CalcGame/.buildozer/android/platform/python-for-android-new-toolchain
[INFO]: Unpacking six for armeabi-v7a
[INFO]: -> running basename https://pypi.python.or...(and 40 more)
[INFO]: -> directory context /home/kivy/Projects/CalcGame/.buildozer/android/platform/build/build/other_builds/six-python2/armeabi-v7a
[INFO]: six is already unpacked, skipping
[INFO]: <- directory context /home/kivy/Projects/CalcGame/.buildozer/android/platform/python-for-android-new-toolchain
[INFO]: -> running rm -rf /home/kivy/Projects/Cal...(and 99 more)
[INFO]: -> running cp -a /home/kivy/Projects/Calc...(and 225 more)
[INFO]: Unpacking pyjnius for armeabi-v7a
[INFO]: -> running basename https://github.com/kiv...(and 28 more)
[INFO]: -> directory context /home/kivy/Projects/CalcGame/.buildozer/android/platform/build/build/other_builds/pyjnius-python2-sdl2/armeabi-v7a
[INFO]: pyjnius is already unpacked, skipping
[INFO]: <- directory context /home/kivy/Projects/CalcGame/.buildozer/android/platform/python-for-android-new-toolchain
[INFO]: Unpacking kivy for armeabi-v7a
[INFO]: -> running basename https://github.com/kiv...(and 25 more)
[INFO]: -> directory context /home/kivy/Projects/CalcGame/.buildozer/android/platform/build/build/other_builds/kivy-python2-sdl2/armeabi-v7a
[INFO]: kivy is already unpacked, skipping
[INFO]: <- directory context /home/kivy/Projects/CalcGame/.buildozer/android/platform/python-for-android-new-toolchain
[INFO]: # Prebuilding recipes
[INFO]: Prebuilding hostpython2 for armeabi-v7a
[INFO]: -> running cp /home/kivy/Projects/CalcGam...(and 233 more)
[INFO]: Prebuilding sdl2_image for armeabi-v7a
[INFO]: sdl2_image has no prebuild_armeabi_v7a, skipping
[INFO]: Applying patches for sdl2_image[armeabi-v7a]
[INFO]: sdl2_image already patched, skipping
[INFO]: Prebuilding sdl2_mixer for armeabi-v7a
[INFO]: sdl2_mixer has no prebuild_armeabi_v7a, skipping
[INFO]: Applying patches for sdl2_mixer[armeabi-v7a]
[INFO]: sdl2_mixer already patched, skipping
[INFO]: Prebuilding sdl2_ttf for armeabi-v7a
[INFO]: sdl2_ttf has no prebuild_armeabi_v7a, skipping
[INFO]: Prebuilding python2 for armeabi-v7a
[INFO]: python2 has no prebuild_armeabi_v7a, skipping
[INFO]: Applying patches for python2[armeabi-v7a]
[INFO]: python2 already patched, skipping
[INFO]: Prebuilding sdl2 for armeabi-v7a
[INFO]: sdl2 has no prebuild_armeabi_v7a, skipping
[INFO]: Applying patches for sdl2[armeabi-v7a]
[INFO]: sdl2 already patched, skipping
[INFO]: Prebuilding six for armeabi-v7a
[INFO]: six has no prebuild_armeabi_v7a, skipping
[INFO]: Prebuilding android for armeabi-v7a
[INFO]: android has no prebuild_armeabi_v7a, skipping
[INFO]: -> directory context /home/kivy/Projects/CalcGame/.buildozer/android/platform/build/build/other_builds/android-python2-sdl2/armeabi-v7a/android
[INFO]: <- directory context /home/kivy/Projects/CalcGame/.buildozer/android/platform/python-for-android-new-toolchain
[INFO]: Prebuilding pyjnius for armeabi-v7a
[INFO]: pyjnius has no prebuild_armeabi_v7a, skipping
[INFO]: Applying patches for pyjnius[armeabi-v7a]
[INFO]: pyjnius already patched, skipping
[INFO]: Prebuilding kivy for armeabi-v7a
[INFO]: kivy has no prebuild_armeabi_v7a, skipping
[INFO]: # Building recipes
[INFO]: Building hostpython2 for armeabi-v7a
[INFO]: -> directory context /home/kivy/Projects/CalcGame/.buildozer/android/platform/build/build/other_builds/hostpython2/desktop/hostpython2
[INFO]: hostpython already exists, skipping build
[INFO]: <- directory context /home/kivy/Projects/CalcGame/.buildozer/android/platform/python-for-android-new-toolchain
[INFO]: Building sdl2_image for armeabi-v7a
[INFO]: Building sdl2_mixer for armeabi-v7a
[INFO]: Building sdl2_ttf for armeabi-v7a
[INFO]: Building python2 for armeabi-v7a
[INFO]: Copying hostpython binary to targetpython folder
[INFO]: -> running cp /home/kivy/Projects/CalcGam...(and 207 more)
[INFO]: Building sdl2 for armeabi-v7a
[INFO]: -> directory context /home/kivy/Projects/CalcGame/.buildozer/android/platform/build/build/bootstrap_builds/sdl2_gradle-python2/jni
[INFO]: -> running ndk-build V=1
working: /homeException in thread background thread for pid 2431:
Traceback (most recent call last):
File "/usr/lib/python2.7/threading.py", line 801, in __bootstrap_inner
self.run()
File "/usr/lib/python2.7/threading.py", line 754, in run
self.__target(*self.__args, **self.__kwargs)
File "/usr/local/lib/python2.7/dist-packages/sh.py", line 2170, in background_thread
handle_exit_code(exit_code)
File "/usr/local/lib/python2.7/dist-packages/sh.py", line 1929, in fn
return self.command.handle_command_exit_code(exit_code)
File "/usr/local/lib/python2.7/dist-packages/sh.py", line 672, in handle_command_exit_code
raise exc
ErrorReturnCode_2:
RAN: /home/kivy/.buildozer/android/platform/android-ndk-r9c/ndk-build V=1
STDOUT:
/home/kivy/Projects/CalcGame/.buildozer/android/platform/build/build/bootstrap_builds/sdl2_gradle-python2/jni/sdl/Android.mk:8: *** Please define SDL_JAVA_PACKAGE_PATH to the path of your Java package with dots replaced with underscores, for example "com_example_SanAngeles". Stop.
STDERR:
Traceback (most recent call last):
File "/usr/lib/python2.7/runpy.py", line 174, in _run_module_as_main
"__main__", fname, loader, pkg_name)
File "/usr/lib/python2.7/runpy.py", line 72, in _run_code
exec code in run_globals
File "/home/kivy/Projects/CalcGame/.buildozer/android/platform/python-for-android-new-toolchain/pythonforandroid/toolchain.py", line 978, in <module>
main()
File "/home/kivy/Projects/CalcGame/.buildozer/android/platform/python-for-android-new-toolchain/pythonforandroid/toolchain.py", line 975, in main
ToolchainCL()
File "/home/kivy/Projects/CalcGame/.buildozer/android/platform/python-for-android-new-toolchain/pythonforandroid/toolchain.py", line 512, in __init__
getattr(self, args.subparser_name.replace('-', '_'))(args)
File "/home/kivy/Projects/CalcGame/.buildozer/android/platform/python-for-android-new-toolchain/pythonforandroid/toolchain.py", line 149, in wrapper_func
build_dist_from_args(ctx, dist, args)
File "/home/kivy/Projects/CalcGame/.buildozer/android/platform/python-for-android-new-toolchain/pythonforandroid/toolchain.py", line 193, in build_dist_from_args
build_recipes(build_order, python_modules, ctx)
File "pythonforandroid/build.py", line 573, in build_recipes
File "/home/kivy/Projects/CalcGame/.buildozer/android/platform/python-for-android-new-toolchain/pythonforandroid/recipes/sdl2/__init__.py", line 32, in build_arch
shprint(sh.ndk_build, "V=1", _env=env)
File "pythonforandroid/logger.py", line 175, in shprint
File "/usr/local/lib/python2.7/dist-packages/sh.py", line 720, in next
self.wait()
File "/usr/local/lib/python2.7/dist-packages/sh.py", line 651, in wait
self.handle_command_exit_code(exit_code)
File "/usr/local/lib/python2.7/dist-packages/sh.py", line 672, in handle_command_exit_code
raise exc
sh.ErrorReturnCode_2:
RAN: /home/kivy/.buildozer/android/platform/android-ndk-r9c/ndk-build V=1
STDOUT:
/home/kivy/Projects/CalcGame/.buildozer/android/platform/build/build/bootstrap_builds/sdl2_gradle-python2/jni/sdl/Android.mk:8: *** Please define SDL_JAVA_PACKAGE_PATH to the path of your Java package with dots replaced with underscores, for example "com_example_SanAngeles". Stop.
STDERR:
# Command failed: /usr/bin/python -m pythonforandroid.toolchain create --dist_name=calcgame --bootstrap=sdl2 --requirements=kivy,operator,webbrowser,random,datetime,functools,android --arch armeabi-v7a --copy-libs --color=always --storage-dir=/home/kivy/Projects/CalcGame/.buildozer/android/platform/build
#
# 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
Это известная проблема в стеке потока: сборка Buildozer завершается неудачно при сборке NDK, что приводит к ошибке SDL_JAVA_PACKAGE_PATH. Решением было удалить все, что связано с KIVY, а затем начать с нуля. Перед тем, как переустановить виртуальную машину Kivy Buildozer, я попытаюсь собрать один из примеров проектов и посмотреть, появляется ли такая же ошибка.
================================================== =======================
Оригинал сообщения:
На этой неделе я запрограммировал небольшой расчет игры в киви. Теперь основные функции работают, поэтому я хочу создать apk-файл из моего приложения. Мои проблемы возникают при отладке этого файла apk. Но я начинаю историю с самого начала:
Следуя официальным документам kivy, я установил виртуальную коробку (с пакетом расширения для USB-устройств) и импортировал виртуальную машину Kivy/Buildozer. После получения правильного пароля (это "kivz" на немецкой клавиатуре) и обработки одного исключения во время процесса сборки (некоторые строки buildozer.py нуждались в изменениях), я получил файл apk.
Загрузил apk в мою учетную запись Dropbox, загрузил его на мой телефон (Sony Xperia Z1), установил "apk-installer" на мой телефон, установил CalculationGame через apk-installer. Но игра не будет работать: если вы нажмете на иконку, экран на короткое время почернеет, а затем закроется приложение со стандартным сообщением об ошибке "Расчет игры wurde leider beendet".
Следующим, что я попробовал, была установка Kivy Launcher и запуск моего приложения через этот Launcher. На нем изображен черный экран с логотипом kivy в центре с надписью "Загрузка...". Затем он падает. К сожалению, я не могу найти файлы журнала. Они должны быть расположены в "kivy/CalculationGame/.kivy/". Но эта папка ".кивы" не создана на моем телефоне.
Поэтому я снова запустил виртуальную машину Kivy/Buildozer, подключил к ней свой телефон и установил режим "отладки". Kivy/Buildozer VM напрямую распознала мой телефон (был создан новый значок на рабочем столе). Затем я зашел в терминал и перешел в папку проекта "home/kivy/Projects/CalcGame" (это папка с main.py и analysis.kv, но также папка, в которой происходит сборка, поэтому у нее есть подпапка с именем "build", где сохранен apk). В этой папке я запустил "buildozer android logcat". Он печатает 3 строки, а затем ждет телефона. Поэтому я посмотрел на свой телефон, и он спросил меня, хочу ли я разрешить компьютеру отлаживать его. Я сказал да, конечно, и затем окно терминала начало регистрировать проводные данные. Среди прочего информация о сетевом подключении моего телефона (я прочитал мой wlan ssid, например). Но ничего не связано с моим приложением. И журнал, казалось, повторился после нескольких строк.
Во время этой проводной регистрации я пробовал разные вещи: просто подождал, запустил приложение CalculationGame на своем телефоне и запустил свое приложение через приложение Kivy-Launcher. Ничто не повлияло на вывод в окне терминала Kivy/Buildozer VM. В конце концов я убиваю процесс "buildozer android logcat" с помощью "strg+c". Однако это приводит к сбою / зависанию всей виртуальной машины Kivy/Buildozer.
Я чувствую, что в создании / отладке apk есть что-то очень простое, чего я не понимаю или что я делаю неправильно в своем подходе. Что это?
Дайте мне знать, если вам нужна дополнительная информация о моем коде / телефон / версия для Android /windows(10)/...
2 ответа
Трассировка находится в журнале logcat, который вы разместили через github:
I/python (11902): Traceback (most recent call last):
I/python (11902): File "/home/kivy/Projects/CalcGame/.buildozer/android/app/main.py", line 495, in <module>
I/python (11902): File "/home/kivy/Projects/CalcGame/.buildozer/android/platform/build/dists/calcgame/private/lib/python2.7/site-packages/kivy/app.py", line 827, in run
I/python (11902): File "kivy/_event.pyx", line 714, in kivy._event.EventDispatcher.dispatch (kivy/_event.c:8146)
I/python (11902): File "kivy/_event.pyx", line 1225, in kivy._event.EventObservers.dispatch (kivy/_event.c:14035)
I/python (11902): File "kivy/_event.pyx", line 1149, in kivy._event.EventObservers._dispatch (kivy/_event.c:13564)
I/python (11902): File "/home/kivy/Projects/CalcGame/.buildozer/android/app/main.py", line 445, in post_build_init
I/python (11902): ImportError: No module named android
Решение состоит в том, чтобы добавить android
к строке требований в вашем buildozer.spec, или чтобы удалить зависимость от нее из вашего приложения.
Это хорошая ошибка - это означает, что apk в противном случае был успешно собран.
Ваш buildozer android logcat
Команда должна собрать ваше приложение и запустить logcat
, но вы не сказали ему развернуть или запустить ваше приложение. Я думаю, что вы хотите попробовать что-то вроде buildozer android deploy run logcat
, И вы должны запустить его из папки вашего проекта (где ваш buildozer.spec
файл находится)