-1

在 android 上启动我的应用程序时遇到问题。尝试在android上打开它时崩溃。我的应用程序使用 kivy 和 kivymd 作为 GUI。它还使用 kivy_garden.mapview 来显示地图。它在我的电脑上运行良好。

我通过 google collab 虚拟环境编译它。

关于 buildozer.spec 文件,我知道 kivy_garden.mapview 不再使用以下几行指定:

#Garden requirements
garden_requirements = mapview

所以我让它这样:

#Garden requirements
#garden_requirements =

我以这种方式指定了 kivy_garden.mapview 模块:

requirements = python3,kivy==2.0.0,kivymd==0.104.2,numpy,pillow,kivy_garden.mapview,openssl,requests

编译工作正常,创建 .apk 没有任何问题。但是当我在 Android 上启动该应用程序时,它崩溃了。我在 MapView 文档中阅读了以下建议:

要求:它需要 concurrent.futures 和 requests。如果你在 Android / iOS 上使用它,不要忘记将 openssl 添加为要求,否则在从请求中导入 urllib3 时会出现问题。

这就是为什么我的.spec文件上面的要求中有“openssl”和“requests”的原因。

我的脚本(main.py)从这些库导入开始:

import kivy
kivy.require('2.0.0')
import kivymd
from kivymd.uix.screen import MDScreen
from kivymd.app import MDApp
from kivy.uix.image import Image
from kivymd.uix.button import MDFillRoundFlatButton
from kivymd.uix.textfield import MDTextField
from kivymd.uix.label import MDLabel
from kivy_garden.mapview import MapView, MapSource, MapMarker
import numpy as np

有人能告诉我如何在 2022 年在 android 上制作可工作的 kivy garden mapview 吗?

我创建了一个没有“地图功能”的应用程序版本,所以除了 kivy_garden.mapview 模块之外的所有内容都与上面一样,它编译并运行良好。

4

1 回答 1

0

在这里解决:

https://github.com/kivy-garden/mapview/issues/53

要求 = python3,kivy==2.0.0,kivymd==0.104.2,numpy,pillow,kivy_garden.mapview,openssl,requests,charset_normalizer,chardet,idna, urllib3,certifi

(默认情况下应该已经包含证书,但为了以防万一)

于 2022-01-20T22:24:17.767 回答