繁体   English   中英

如何使 kivy urlrequests 与我在 buildozer 中制作的 android apk 一起使用

[英]How to make kivy urlrequests work with my android apk made in buildozer

Im making a moblie app which will use kivy UrlRequests, on ubuntu and macos the app works but when i make a apk with buildozer and run it on my android (OnePlus 5: android 9.0.8) via android studios the application works until the UrlRquest它崩溃的部分。

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

如果您需要,我也有 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()

当按下“发出请求”按钮时,我希望 output 是 btc 的值,但实际的 output 什么都不是

我在http://www.jiajianhudong.com/question/3324796.html找到了一个解决方案我更新了我的 buildozer 要求以添加certfi并将ca_file=certifi.where()参数添加到我的 UrlRequest()

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM