英文:
Buildozer java erro
问题
以下是翻译好的部分:
我对kivy和buildozer都很新。我第一次运行buildozer来构建Android应用程序。我编写了一个在Python解释器中运行良好且没有错误的应用程序。因此,我开始将代码转换为Android应用程序,因为kivy是一个跨平台的编程语言。但是当我开始使用buildozer来制作应用程序时,我遇到了一种奇怪的错误。由于我是新手,我不知道解决方法,所以请帮助我!
安装完buildozer后,我只是创建了一个.spec文件,并在不编辑.spec文件的情况下开始调试,以便测试一切是否正常。在运行buildozer时,它下载了SDK和NDK并安装了它们,但在安装完它们后,它显示了一个很长的错误,下面是错误日志,请查看并尽快帮助我,以便我能够学习并更多地了解kivy。
提前谢谢!
# 省略了日志内容...
英文:
I am new to kivy and buildozer both. Also I am running buildozer for the very first time to build application for android. I programmed an application which works fine on python interpreter without any errors. So I went on converting the code into an application for android since kivy is a cross-platform programming language but when i started buildozer to make application i get a weird type of error and as i am new i dont know whats the solution so please help me!
After Installing buildozer i just made a .spec file and started debugging without editing the .spec file so as to test that everything is fine or not and on running buildozer it downloaded the sdk and ndk and installed them but after installing them it gives a long error whose log i have given below so see it and please help at your earliest so that i can learn and get more out of kivy.
Thank You In Advance
# Check configuration tokens
# Read available permissions from api-versions.xml
# Preparing build
# Check requirements for android
# Run 'dpkg --version'
# Cwd None
Debian 'dpkg' package management program version 1.19.7 (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/bin/cython
# Search for Java compiler (javac)
# -> found at /usr/lib/jvm/java-11-openjdk-amd64/bin/javac
# Search for Java keytool (keytool)
# -> found at /usr/lib/jvm/java-11-openjdk-amd64/bin/keytool
# Install platform
# Run 'git config --get remote.origin.url'
# Cwd /root/Documents/CoronaKivy/.buildozer/android/platform/python-for-android
https://github.com/kivy/python-for-android.git
# Run 'git branch -vv'
# Cwd /root/Documents/CoronaKivy/.buildozer/android/platform/python-for-android
* master 8cf66cc1 [origin/master] Merge pull request #2111 from kivy/release-2020.03.30
# Run '/usr/bin/python3.7 -m pip install -q --user \'appdirs\' \'colorama>=0.3.3\' \'jinja2\' \'six\' \'enum34; python_version<"3.4"\' \'sh>=1.10; sys_platform!="nt"\' \'pep517<0.7.0"\' \'pytoml\' \'virtualenv<20\''
# Cwd None
# Apache ANT found at /root/.buildozer/android/platform/apache-ant-1.9.4
# Android SDK found at /root/.buildozer/android/platform/android-sdk
# Recommended android's NDK version by p4a is: 19b
# Android NDK found at /root/.buildozer/android/platform/android-ndk-r19b
# Installing/updating SDK platform tools if necessary
# Run '/root/.buildozer/android/platform/android-sdk/tools/bin/sdkmanager tools platform-tools'
# Cwd /root/.buildozer/android/platform/android-sdk
Picked up _JAVA_OPTIONS: -Dawt.useSystemAAFontSettings=on -Dswing.aatext=true
Exception in thread "main" java.lang.NoClassDefFoundError: javax/xml/bind/annotation/XmlSchema
at com.android.repository.api.SchemaModule$SchemaModuleVersion.<init>(SchemaModule.java:156)
at com.android.repository.api.SchemaModule.<init>(SchemaModule.java:75)
at com.android.sdklib.repository.AndroidSdkHandler.<clinit>(AndroidSdkHandler.java:81)
at com.android.sdklib.tool.sdkmanager.SdkManagerCli.main(SdkManagerCli.java:73)
at com.android.sdklib.tool.sdkmanager.SdkManagerCli.main(SdkManagerCli.java:48)
Caused by: java.lang.ClassNotFoundException: javax.xml.bind.annotation.XmlSchema
at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:581)
at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:521)
... 5 more
# Command failed: /root/.buildozer/android/platform/android-sdk/tools/bin/sdkmanager tools platform-tools
# ENVIRONMENT:
# SHELL = '/bin/bash'
# SESSION_MANAGER = 'local/kali:@/tmp/.ICE-unix/1329,unix/kali:/tmp/.ICE-unix/1329'
# QT_ACCESSIBILITY = '1'
# COLORTERM = 'truecolor'
# XDG_MENU_PREFIX = 'gnome-'
# GNOME_DESKTOP_SESSION_ID = 'this-is-deprecated'
# GTK_IM_MODULE = 'ibus'
# LANGUAGE = 'en_IN:en'
# QT4_IM_MODULE = 'ibus'
# SSH_AUTH_SOCK = '/run/user/0/keyring/ssh'
# XMODIFIERS = '@im=ibus'
# DESKTOP_SESSION = 'gnome'
# SSH_AGENT_PID = '1282'
# GTK_MODULES = 'gail:atk-bridge'
# DBUS_STARTER_BUS_TYPE = 'session'
# PWD = '/root/Documents/CoronaKivy'
# LOGNAME = 'root'
# XDG_SESSION_DESKTOP = 'gnome'
# QT_QPA_PLATFORMTHEME = 'qt5ct'
# XDG_SESSION_TYPE = 'x11'
# GPG_AGENT_INFO = '/run/user/0/gnupg/S.gpg-agent:0:1'
# XAUTHORITY = '/run/user/0/gdm/Xauthority'
# WINDOWPATH = '2'
# GDM_LANG = 'en_IN'
# HOME = '/root'
# USERNAME = 'root'
# IM_CONFIG_PHASE = '1'
# LANG = 'en_IN'
# LS_COLORS = 'rs=0:di=01;34:ln=01;36:mh=00:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:mi=00:su=37;41:sg=30;43:ca=30;41:tw=30;42:ow=34;42:st=37;44:ex=01;32:*.tar=01;31:*.tgz=01;31:*.arc=01;31:*.arj=01;31:*.taz=01;31:*.lha=01;31:*.lz4=01;31:*.lzh=01;31:*.lzma=01;31:*.tlz=01;31:*.txz=01;31:*.tzo=01;31:*.t7z=01;31:*.zip=01;31:*.z=01;31:*.dz=01;31:*.gz=01;31:*.lrz=01;31:*.lz=01;31:*.lzo=01;31:*.xz=01;31:*.zst=01;31:*.tzst=01;31:*.bz2=01;31:*.bz=01;31:*.tbz=01;31:*.tbz2=01;31:*.tz=01;31:*.deb=01;31:*.rpm=01;31:*.jar=01;31:*.war=01;31:*.ear=01;31:*.sar=01;31:*.rar=01;31:*.alz=01;31:*.ace=01;31:*.zoo=01;31:*.cpio=01;31:*.7z=01;31:*.rz=01;31:*.cab=01;31:*.wim=01;31:*.swm=01;31:*.dwm=01;31:*.esd=01;31:*.jpg=01;35:*.jpeg=01;35:*.mjpg=01;35:*.mjpeg=01;35:*.gif=01;35:*.bmp=01;35:*.pbm=01;35:*.pgm=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.tiff=01;35:*.png=01;35:*.svg=01;35:*.svgz=01;35:*.mng=01;35:*.pcx=01;35:*.mov=01;35:*.mpg=01;35:*.mpeg=01;35:*.m2v=01;35:*.mkv=01;35:*.webm=01;35:*.ogm=01;35:*.mp4=01;35:*.m4v=01;35:*.mp4v=01;35:*.vob=01;35:*.qt=01;35:*.nuv=01;35:*.wmv=01;35:*.asf=01;35:*.rm=01;35:*.rmvb=01;35:*.flc=01;35:*.avi=01;35:*.fli=01;35:*.flv=01;35:*.gl=01;35:*.dl=01;35:*.xcf=01;35:*.xwd=01;35:*.yuv=01;35:*.cgm=01;35:*.emf=01;35:*.ogv=01;35:*.ogx=01;35:*.aac=00;36:*.au=00;36:*.flac=00;36:*.m4a=00;36:*.mid=00;36:*.midi=00;36:*.mka=00;36:*.mp3=00;36:*.mpc=00;36:*.ogg=00;36:*.ra=00;36:*.wav=00;36:*.oga=00;36:*.opus=00;36:*.spx=00;36:*.xspf=00;36:'
# XDG_CURRENT_DESKTOP = 'GNOME'
# VTE_VERSION = '6000'
# GNOME_TERMINAL_SCREEN = '/org/gnome/Terminal/screen/a738ed9c_93c5_47ac_8f3a_19686d6ae6bd'
# INVOCATION_ID = '03fd0c25e1254af3adc502f37fccdaac'
# MANAGERPID = '1136'
# CLUTTER_IM_MODULE = 'ibus'
# XDG_SESSION_CLASS = 'user'
# TERM = 'xterm-256color'
# USER = 'root'
# GNOME_TERMINAL_SERVICE = ':1.236'
# DISPLAY = ':1'
# SHLVL = '1'
# QT_IM_MODULE = 'ibus'
# DBUS_STARTER_ADDRESS = 'unix:path=/run/user/0/bus,guid=d7f786b64d6c4a995f2f8dbc5e8af503'
# XDG_RUNTIME_DIR = '/run/user/0'
# QT_AUTO_SCREEN_SCALE_FACTOR = '0'
# JOURNAL_STREAM = '9:29874'
# XDG_DATA_DIRS = '/usr/share/gnome:/usr/local/share/:/usr/share/'
# PATH = '/root/.buildozer/android/platform/apache-ant-1.9.4/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin'
# GDMSESSION = 'gnome'
# DBUS_SESSION_BUS_ADDRESS = 'unix:path=/run/user/0/bus,guid=d7f786b64d6c4a995f2f8dbc5e8af503'
# _JAVA_OPTIONS = '-Dawt.useSystemAAFontSettings=on -Dswing.aatext=true'
# _ = '/usr/local/bin/buildozer'
#
# 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
答案1
得分: 0
我遇到了同样的问题。问题是我没有使用正确的Java版本。
我在使用jdk-11,但我必须使用OpenJDK-8-jdk。
请使用以下命令检查您的Java版本:
java -version
这将显示您的Java版本。如果现在它没有显示"OpenJDK version 1.8.0_242",
考虑使用以下命令进行安装:
sudo apt install -y git zip unzip openjdk-8-jdk
如果您想切换Java版本,请使用以下命令:
sudo update-alternatives --config java
请告诉我这是否有效。
英文:
I had the same issue . The problem was that I was not using the correct java version.
I was using jdk-11 ,but I had to use OpenJDK-8-jdk.
Please check your java version with the command
java -version
That will show you the java version. Now when It doesn´t show "OpenJDK version 1.8.0_242"
Consider installing it using
sudo apt install -y git zip unzip openjdk-8-jdk
When you want to switch through java versions. Use the command
sudo update-alternatives --config java
Please tell me if that worked
专注分享java语言的经验与见解,让所有开发者获益!
评论