Могут ли приложения buildozer made android использовать модули glob и os? - PullRequest
0 голосов
/ 03 августа 2020

Итак, сейчас я пытаюсь понять, почему мой маленький плеер, который я написал в kivy, вылетает при запуске. В нем говорится, что сборка прошла успешно, и все модули, похоже, работают отдельно в других тестах (кроме glob), но этот чистый python, насколько я знаю.

вот мой код


import glob
import kivy
from kivy.core.audio import SoundLoader
from kivy.app import App
from kivy.uix.label import Label
from kivy.uix.gridlayout import GridLayout
from kivy.uix.textinput import TextInput
from kivy.uix.button import Button
from kivy.uix.screenmanager import ScreenManager, Screen
from kivy.graphics import Rectangle
from kivy.graphics import Color
from kivy.uix.widget import Widget
import random
import os
from android.permissions import request_permissions, Permission
request_permissions([Permission.READ_EXTERNAL_STORAGE])




class PageI(GridLayout):
    def __init__(self,**kwargs):
        super().__init__( **kwargs)
        self.cols = 3
        self.state = False
        
        
        self.music = glob.glob('/Phone/reMusic/*.mp3')#glob.glob('music\\*.mp3')
        
            



        self.currname = self.music[0]
        self.lasttime = 0
        self.currsound = SoundLoader.load(self.currname)

        fillclr = (round(random.random(),4), round(random.random(),4), round(random.random(),4), 1)

        SR = Button(text='forward')
        SR.bind(on_press=self.switchoR)
        self.add_widget(SR)
        placeholder = Label()
        self.add_widget(placeholder)

        SL = Button(text='backward')
        SL.bind(on_press=self.switchoL)
        self.add_widget(SL)

        placeholder = Label()
        self.add_widget(placeholder)

        self.PP = Button(on_press = self.switchostate)
        self.add_widget(self.PP)

        placeholder = Label()
        self.add_widget(placeholder)

        placeholder = Label()
        self.add_widget(placeholder)

        self.showcase = Label(text=self.currname)
        self.add_widget(self.showcase)

    def PPcontrol(self):
        if not self.currsound.state == 'play':
            self.currsound.play()
            self.currsound.seek(self.lasttime)
        else:
            self.lasttime = int(self.currsound.get_pos())
            self.currsound.stop()




    def switchostate(self,instance):
        self.PPcontrol()

    def showsitch(self):
        self.showcase.text = self.currname

    def switchoR(self,instance):
        instance.background_color = (round(random.random(),4), round(random.random(),4), round(random.random(),4), 1)
        ind = self.music.index(self.currname)
        if ind+1 > len(self.music)-1:
            self.currname = self.music[ind - len(self.music) + 1]
        else:
            self.currname = self.music[ind + 1]
        self.lasttime = 0
        self.currsound.stop()
        self.currsound = SoundLoader.load(self.currname)
        self.currsound.play()

        self.showsitch()




    def switchoL(self,instance):
        instance.background_color = (round(random.random(),4), round(random.random(),4), round(random.random(),4), 1)
        ind = self.music.index(self.currname)
        if ind - 1 < 0:
            self.currname = self.music[len(self.music) - 2]
        else:
            self.currname = self.music[ind - 1]
        self.lasttime = 0
        self.currsound.stop()
        self.currsound = SoundLoader.load(self.currname)
        self.currsound.play()

        self.showsitch()




class Applet(App):
    def build(self):
        self.dircheck()
        self.p = PageI()
        return self.p

    def dircheck(self):
        try:
            if not os.path.exists(os.path.join(os.getcwd(),'\\music')):
                os.mkdir(os.path.join(os.getcwd(),'\\music'))
        except: None


if __name__ == '__main__':
    apper = Applet()
    apper.run()

ik это довольно беспорядочно, но, как вы можете видеть, я пробовал как создавать каталоги, так и получать доступ к готовым каталогам. И что ж, я не уверен, почему он умирает, я убедился, что у него есть все завивки в файле spe c.

...