Как заставить работать kivy urlrequests с моим android apk, сделанным в buildozer - PullRequest
0 голосов
/ 26 сентября 2019

Я создаю мобильное приложение, которое будет использовать kivy UrlRequests, на ubuntu и macos, приложение работает, но когда я делаю apk с buildozer и запускаю его на своем андроиде (OnePlus 5: android 9.0.8) через Android-студии, приложение работаетдо части UrlRquest, где он падает.

Я сделал тестовый apk только для того, чтобы изолировать и протестировать UrlRequest, и он работает на моем ПК / ноутбуке и kivy launcher, но не как apk на android.

У меня также есть файлы buildozer.spec и logcat, дайте мне знать, если вам нужно

Я попробовал и изменил разрешения и требования 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()

Я ожидаю, что выходной сигнал будет равным значению btc при нажатии кнопки «Сделать запрос», но фактический результат - ничто

...