我检查了日志,但没有错误
使用buildozer、python 3.11、kivy、kivymd、plyer编译的应用程序
我允许在buildozer.spec中使用gps,并导入了所有模块,但它仍然崩溃
我可以给你日志,但没有错误
当我在笔记本电脑上运行这个应用程序时,它会正常工作,不会崩溃
from kivy.app import App
from kivy.lang import Builder
from plyer import gps
from kivy.uix.label import Label
from kivy.utils import platform
from kivymd.app import MDApp
from kivy.uix.widget import Widget
from kivymd.uix.toolbar import MDTopAppBar
from kivy.properties import StringProperty
kv='''
MDBoxLayout:
orientation: "vertical"
MDTopAppBar:
title: "Hello world!"
right_action_items: [["dots-vertical", lambda x: app.callback()]]
MDLabel:
text: app.gps_status
halign: "center"
MDLabel:
text: app.gps_location
halign: "center"
MDSwitch:
active: False
pos_hint: {"center_x": .5, "center_y": .5}
width: dp(45)
on_active: app.start(*args)
'''
class Main(MDApp):
gps_location = StringProperty()
gps_status = StringProperty()
def request_android_permissions(self):
import android
from android.permissions import request_permissions, Permission
def callback(permissions, results):
droid = android.Android()
if all([res for res in results]):
droid.makeToast("callback. All permissions granted.")
else:
droid.makeToast("callback. Some permissions refused.")
request_permissions([Permission.ACCESS_COARSE_LOCATION,
Permission.ACCESS_FINE_LOCATION], callback)
def build(self):
try:
gps.configure(on_location=self.on_location)
except NotImplementedError:
self.gps_status = 'GPS is not implemented for your platform'
if platform == "android":
self.request_android_permissions()
gps.configure(on_location=self.on_location)
return Builder.load_string(kv)
def on_location(self, **kwargs):
self.gps_location = '\n'.join([
'{}={}'.format(k, v) for k, v in kwargs.items()])
def start(self, minTime, minDistance):
gps.start(minTime, minDistance)
droid.makeToast("programm started")
def stop(self):
droid.makeToast("programm stopped")
gps.stop()
if __name__ == "__main__":
Main().run()