如何让kivy urlrequests与我在buildoz制作的android apk一起工作

2024-09-30 18:29:16 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在制作一个moblie应用程序,它将使用kivy UrlRequests,在ubuntu和macos上运行,但是当我用buildozer制作一个apk并通过android studios在我的android(OnePlus 5:android 9.0.8)上运行时,该应用程序会一直运行到UrlRquest部分崩溃。你知道吗

我做了一个测试apk只是为了隔离和测试UrlRequest,它可以在我的pc/笔记本电脑和kivy launcher上工作,但不能作为android上的apk。你知道吗

我也有buildozer.spec规范如果你需要的话让我知道

我试着改变了主意Buildozer.spec规范许可和要求: android.permissions = INTERNET,ACCESS_NETWORK_STATE

requirements = kivy,android,openssl,pyopenssl,httplib2

我也尝试过把https改成http,但还是没有成功

from kivy.clock              import Clock
from kivy.lang               import Builder
from kivy.network.urlrequest import UrlRequest
from kivy.uix.boxlayout      import BoxLayout


Builder.load_string('''
<DemoLayout>:
  orientation: "vertical"
  padding:     50
  spacing:     50

  Button:
    size_hint: (0.3, 0.3)
    pos_hint:  {"center_x": 0.5}
    text:      "Make Request"
    on_press:  app.make_request()

  Label:
    id: result_label
''')


class DemoLayout(BoxLayout):
  pass


class Demo(App):
  def build(self):
    return DemoLayout()

  def on_request_success(self, request, result):
    self.root.ids.result_label.text = str(result["data"][0]["amount"])

  def make_request(self, *args):
    UrlRequest(
      url         = "https://api.coinbase.com/v2/prices/GBP/spot?",
      on_error    = None,
      on_failure  = None,
      on_progress = None,
      on_redirect = None,
      on_success  = self.on_request_success,
      timeout     = 5,
    )


Demo().run()

当按下“makerequest”按钮时,我希望输出是btc的一个值,但实际的输出是nothing


Tags: fromimportselfnone应用程序onrequestdef