【问题标题】:Error with Buildozer (Kivy/ KivyMD App). Can you help me?Buildozer(Kivy/ KivyMD 应用程序)出错。你能帮助我吗?
【发布时间】:2021-04-06 12:03:06
【问题描述】:

我是新来的,所以我对这个平台一无所知。 我在使用 Buildozer 为我的 KivyMD 应用程序创建 APK 文件时遇到了一些问题。 显然,在我的 python3 代码中没有错误,我可以毫无问题地执行它。 但是当我使用 buildozer android debug 运行 Buildozer 时,这是我的错误日志:

(others compiling rows)
Compiling '/home/generic/Scrivania/Apod_images/.buildozer/android/app/Apod/share/doc/networkx-2.5.1/examples/subclass/plot_antigraph.py'...
Compiling '/home/generic/Scrivania/Apod_images/.buildozer/android/app/Apod/share/doc/networkx-2.5.1/examples/subclass/plot_printgraph.py'...
Listing '/home/generic/Scrivania/Apod_images/.buildozer/android/app/_applibs'...
Compiling '/home/generic/Scrivania/Apod_images/.buildozer/android/app/main.py'...
Compiling '/home/generic/Scrivania/Apod_images/.buildozer/android/app/sitecustomize.py'...
/home/generic/Scrivania/Apod_images/.buildozer/android/app/Apod/lib/python3.8/site-packages/kivymd/uix/picker.py:625: SyntaxWarning: "is" with a literal. Did you mean "=="?
  op = 1 if operation is "next" else -1
WARNING: Received a --sdk argument, but this argument is deprecated and does nothing.
No setup.py/pyproject.toml used, copying full private data into .apk.
Error while running "/home/generic/Scrivania/Apod_images/.buildozer/android/platform/build-armeabi-v7a/build/other_builds/hostpython3/desktop/hostpython3/native-build/python3 -OO -m compileall -b -f /home/generic/Scrivania/Apod_images/.buildozer/android/app"
This probably means one of your Python files has a syntax error, see logs above
# Command failed: /home/generic/Scrivania/Apod_images/Apod/bin/python -m pythonforandroid.toolchain apk --debug --bootstrap=sdl2 --dist_name apod_searcher --name 'APOD Searcher' --version 0.1 --package org.test.apod_searcher --minsdk 21 --ndk-api 21 --private /home/generic/Scrivania/Apod_images/.buildozer/android/app --permission INTERNET --android-entrypoint org.kivy.android.PythonActivity --android-apptheme @android:style/Theme.NoTitleBar --presplash /home/generic/Scrivania/Apod_images/galaxy.png --icon /home/generic/Scrivania/Apod_images/galaxy.png --orientation portrait --copy-libs --arch armeabi-v7a --color=always --storage-dir="/home/generic/Scrivania/Apod_images/.buildozer/android/platform/build-armeabi-v7a" --ndk-api=21
# ENVIRONMENT:
#     SHELL = '/bin/bash'
#     SESSION_MANAGER = 'local/Generic:@/tmp/.ICE-unix/1683,unix/Generic:/tmp/.ICE-unix/1683'
#     QT_ACCESSIBILITY = '1'
#     COLORTERM = 'truecolor'
#     XDG_CONFIG_DIRS = '/etc/xdg/xdg-ubuntu:/etc/xdg'
#     XDG_MENU_PREFIX = 'gnome-'
#     TERM_PROGRAM_VERSION = '1.54.3'
#     GNOME_DESKTOP_SESSION_ID = 'this-is-deprecated'
#     GNOME_SHELL_SESSION_MODE = 'ubuntu'
#     SSH_AUTH_SOCK = '/run/user/1000/keyring/ssh'
#     XMODIFIERS = '@im=ibus'
#     DESKTOP_SESSION = 'ubuntu'
#     SSH_AGENT_PID = '1636'
#     GTK_MODULES = 'gail:atk-bridge'
#     PWD = '/home/generic/Scrivania/Apod_images'
#     XDG_SESSION_DESKTOP = 'ubuntu'
#     LOGNAME = 'generic'
#     XDG_SESSION_TYPE = 'x11'
#     GPG_AGENT_INFO = '/run/user/1000/gnupg/S.gpg-agent:0:1'
#     XAUTHORITY = '/run/user/1000/gdm/Xauthority'
#     VSCODE_GIT_ASKPASS_NODE = '/usr/share/code/code'
#     GJS_DEBUG_TOPICS = 'JS ERROR;JS LOG'
#     WINDOWPATH = '2'
#     HOME = '/home/generic'
#     USERNAME = 'generic'
#     IM_CONFIG_PHASE = '1'
#     LANG = 'it_IT.UTF-8'
#     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:*.webp=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 = 'Unity'
#     VIRTUAL_ENV = '/home/generic/Scrivania/Apod_images/Apod'
#     GIT_ASKPASS = '/usr/share/code/resources/app/extensions/git/dist/askpass.sh'
#     INVOCATION_ID = '820f78c5cb5e4acea69d24cb8bdcd6fc'
#     MANAGERPID = '1462'
#     CHROME_DESKTOP = 'code-url-handler.desktop'
#     GJS_DEBUG_OUTPUT = 'stderr'
#     LESSCLOSE = '/usr/bin/lesspipe %s %s'
#     XDG_SESSION_CLASS = 'user'
#     TERM = 'xterm-256color'
#     LESSOPEN = '| /usr/bin/lesspipe %s'
#     USER = 'generic'
#     VSCODE_GIT_IPC_HANDLE = '/run/user/1000/vscode-git-c1d21643ef.sock'
#     DISPLAY = ':0'
#     SHLVL = '1'
#     QT_IM_MODULE = 'ibus'
#     XDG_RUNTIME_DIR = '/run/user/1000'
#     PS1 = ('(Apod) \\[\\e]0;\\u@\\h: '
 '\\w\\a\\]${debian_chroot:+($debian_chroot)}\\[\\033[01;32m\\]\\u@\\h\\[\\033[00m\\]:\\[\\033[01;34m\\]\\w\\[\\033[00m\\]\\$ ')
#     VSCODE_GIT_ASKPASS_MAIN = '/usr/share/code/resources/app/extensions/git/dist/askpass-main.js'
#     JOURNAL_STREAM = '8:42509'
#     XDG_DATA_DIRS = '/usr/share/ubuntu:/usr/local/share/:/usr/share/:/var/lib/snapd/desktop'
#     PATH = '/home/generic/.buildozer/android/platform/apache-ant-1.9.4/bin:/home/generic/Scrivania/Apod_images/Apod/bin:/home/generic/.local/bin:/home/generic/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin'
#     GDMSESSION = 'ubuntu'
#     ORIGINAL_XDG_CURRENT_DESKTOP = 'ubuntu:GNOME'
#     DBUS_SESSION_BUS_ADDRESS = 'unix:path=/run/user/1000/bus'
#     GIO_LAUNCHED_DESKTOP_FILE_PID = '51229'
#     GIO_LAUNCHED_DESKTOP_FILE = '/usr/share/applications/code.desktop'
#     TERM_PROGRAM = 'vscode'
#     _ = '/home/generic/Scrivania/Apod_images/Apod/bin/buildozer'
#     PACKAGES_PATH = '/home/generic/.buildozer/android/packages'
#     ANDROIDSDK = '/home/generic/.buildozer/android/platform/android-sdk'
#     ANDROIDNDK = '/home/generic/.buildozer/android/platform/android-ndk-r19c'
#     ANDROIDAPI = '27'
#     ANDROIDMINAPI = '21'
# 
# 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

没有意义,谁能帮帮我?

编辑:这是我的 python 代码和我的 KV 文件:

    import certifi      
from kivy.lang import Builder       
from kivy.network.urlrequest import UrlRequest      
from kivymd.app import MDApp        
from kivymd.uix.dialog import MDDialog      
from kivy.uix.image import Image, AsyncImage        

class ApodImages(MDApp):

    def build(self):
        self.title= "APOD Searcher"
        self.theme_cls.theme_style= "Dark"
        self.theme_cls.primary_palette= "DeepPurple"
        self.theme_cls.primary_hue= "600"
        return Builder.load_file("apod_images.kv")
    
    def DATE(self):
        return str(self.root.ids["enter_date"].text.replace('/', '-')) 

    def make_request(self):
        global PHOTO
        PHOTO= UrlRequest(f"https://api.nasa.gov/planetary/apod?api_key=DEMO_KEY&date={(self.DATE())}", on_success= (self.get_photo and self.get_title), on_failure= self.get_error, on_error= self.get_error, ca_file= certifi.where())

    def get_error(self, on_failure, on_error):
        self.root.ids["informative_label"].text= "Spiacente, non è stata trovata alcuna foto."

    def get_photo(self, result, on_success):
        self.root.ids["photo_view"]= AsyncImage(id= "photo_view", source= str(PHOTO.result["url"]), allow_stretch= True, keep_ratio= False)

    def get_title(self, result, on_success):
        self.root.ids["informative_label"].text= PHOTO.result["title"] + "\n\n" + PHOTO.result["explanation"]

    def show_info_app(self):
        return MDDialog(title= "Informazioni Applicazione", text= "APOD Searcher è una semplice app che mostra ogni immagine del progetto APOD sviluppato dalla Nasa.\n\nInserisci nella barra di ricerca il giorno di cui visionare la foto (oppure lascia il campo vuoto per visionare la foto del giorno corrente) e premi il pulsante ""Cerca!""", auto_dismiss= True).open()

    def show_contacts(self):
        return MDDialog(title= "Contatti", text= "Indirizzo e-mail: email_esempio@mail.com\n\nAltri recapiti:", auto_dismiss= True).open()

ApodImages().run()

NavigationLayout:

    ScreenManager:

        Screen:

            BoxLayout:
                orientation: 'vertical'

                MDToolbar:
                    title: "APOD Searcher"
                    elevation: 10
                    left_action_items: [['menu', lambda x: navigation_bar.set_state()]]

                ScrollView:

                    MDGridLayout:
                        rows: 4
                        spacing: 10
                        adaptive_weight: True
                        padding: dp(8), dp(8)
                        spacing: dp(10)

                        AsyncImage:
                            id: photo_view
                            source: "https://www.totaldesign.it/wp-content/uploads/elementor/thumbs/colore-nero-owwl6fais9p22dndzj9is937kyonae26xm06jsw808.jpg"
                            allow_stretch: True
                            keep_ratio: False    

                        ScrollView:    
                            
                            MDLabel:
                                id: informative_label
                                text: "Qui appariranno tutte le informazioni sulla foto del giorno cercata."
                                halign: "center"
                                theme_text_color: "Primary"
                                size_hint_x: 1.0
                                size_hint_y: None
                                text_size: self.width, None
                                height: self.texture_size[1]

                        MDTextField:
                            id: enter_date
                            hint_text: "Inserisci la data nel formato ANNO/MESE/GIORNO:"
                            mode: "rectangle"
                            max_text_length: 10
                            color_mode: "primary"
                                    
                        MDFillRoundFlatButton:
                            id: request_maker
                            text: "Cerca!"
                            size_hint_x: 0.5
                            size_hint_y: 0.125
                            on_press: app.make_request()
    
    MDNavigationDrawer:
        id: navigation_bar

        BoxLayout:
            orientation: "vertical"
            padding: "8dp"
            spacing: "8dp"

            AnchorLayout:
                anchor_x: "left"
                size_hint_y: None
                height: avatar.height

                Image:
                    id: avatar
                    size_hint: None, None
                    size: "56dp", "56dp"
                    source: "/home/generic/Scrivania/galaxy.png"

            MDLabel:
                text: "Astronomy Picture of the Day Searcher"
                font_style: "Subtitle1"
                size_hint_y: None
                height: self.texture_size[1]

            MDLabel:
                text: "Eventuale sito web e/o altro"
                font_style: "Caption"
                size_hint_y: None
                height: self.texture_size[1]

            ScrollView:

                MDList:

                    OneLineAvatarListItem:
                        text: "Info App"
                        on_press: app.show_info_app()

                        IconLeftWidget:
                            icon: "information-outline"

                    OneLineAvatarListItem:
                        text: "Contatti"
                        on_press: app.show_contacts()

                        IconLeftWidget:
                            icon: "contact-mail-outline"

对不起,如果它没有正确复制,但我是新手,我不知道该怎么做。

【问题讨论】:

  • 你的python代码是什么?没有它就很难调试
  • 我刚刚添加了它。谢谢。
  • 不幸的是,我不使用 Kivy,所以我可能不会有太多帮助。您确实输入了正确的代码。 :)
  • 好的,不过谢谢。
  • You did enter the code correctly. :) 我的意思是您输入的格式正确。抱歉,我无法提供更多帮助。 :(

标签: python python-3.x kivy kivy-language kivymd


【解决方案1】:

确保将以下代码添加到您的 buildozer .spec 文件中:

requirements = kivy==2.0.0, kivymd==0.104.2, sdl2_ttf == 2.0.15

【讨论】:

    猜你喜欢
    • 2017-12-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-09-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-19
    相关资源
    最近更新 更多