首页 > 解决方案 > 使用任何需要互联网的东西时 Kivy 应用程序崩溃

问题描述

我是 kivy 的新手,需要一些帮助。

我正在构建一个带有 buildozer for android 的 Kivy 应用程序,它使用来自 cryptocompare.com 的外包 API

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

该应用程序在打开时立即崩溃..我删除了API并创建了一个Dict,只是为了测试该应用程序是否可以工作,并且该应用程序在android上完美运行..当我放回API时,它只是继续崩溃。请注意,该应用程序在 Pycharm 上运行良好,没有错误.. Buildozer 也没有给出错误.. 我一直试图找出问题很长时间。想尽办法。没运气。

几乎没有运气也包括在 android.permissions 中的所有内容。

这是我的应用程序代码

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.specs https://textuploader.com/1f7ie

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

标签: pythonandroidkivybuildozerkivymd

解决方案


两个可能的问题:

  1. 您可能需要请求运行时权限。查看运行时权限
  2. 您可能需要requests在规范文件中添加您的要求。

推荐阅读