Kivy应用程序在使用任何需要互联网的东西时崩溃



我是kivy的新手,希望得到一些帮助。

我正在使用buildozer为android构建Kivy应用程序,该应用程序使用cryptocompare.com 的外包API

这是一个非常简单的应用程序,显示加密货币的价格,实时更新。

该应用程序打开后立即崩溃。。我删除了API并创建了一个Dict,只是为了测试该应用程序是否可以工作,并且该应用程序在android上完美运行。。当我把API放回去的时候,它就一直崩溃。请注意,该应用程序在Pycharm上运行良好,没有任何错误。。Buildozer也没有给出错误。。这么长时间以来,我一直在努力找出这个问题。尝试了所有可能的方法。没有运气。

几乎包括了android中的所有内容。许可证也没有运气。

这是我的应用程序代码

from kivymd.app import MDApp
from kivymd.uix.screen import Screen
from kivymd.uix.list import MDList, TwoLineListItem
from kivy.uix.scrollview import ScrollView
from kivy.network.urlrequest import UrlRequest

class CryptoPrices(MDApp):
def build(self):
screen = Screen()
scroll = ScrollView()
listview = MDList()
scroll.add_widget(listview)
def got_json(req, result):
for x, y in result.items():
name = x
symbol = str(y["USD"]) + " USD"
item1 = TwoLineListItem(text=name, secondary_text=str(symbol))
listview.add_widget(item1)
req = UrlRequest('https://min-api.cryptocompare.com/data/pricemulti?fsyms=BTC,BCH,LTC,XLM,DASH,XEM,LIBRA,BNB,ETH,XMR,XRP,LTC&tsyms=USD', got_json)
screen.add_widget(scroll)
return screen

if __name__ == '__main__':
CryptoPrices().run()

链接到buildozer.specshttps://textuploader.com/1f7ie

链接到日志文件https://textuploader.com/1f7ii

两个可能的问题:

  1. 您可能需要请求运行时权限。查看运行时权限
  2. 您可能需要在等级库文件中将requests添加到您的需求中

从buildozer.spec文件中,您必须设置互联网权限。默认情况下,此选项会被注释,只需取消注释,应用程序就会正常工作。

在构建应用程序时,您添加的日志文件是buildozer日志。要在应用程序运行时获取应用程序日志,请添加logcat功能(buildozer android logcat(在应用程序日志中,您可以找到导致应用程序崩溃的原因——任何要求或权限或任何其他

相关内容

最新更新