【问题标题】:No Error while Deploying Kivy On Android But app crashes after loading screen在 Android 上部署 Kivy 时没有错误但加载屏幕后应用程序崩溃
【发布时间】:2021-06-30 06:06:49
【问题描述】:

我正在尝试在 android 上部署 kivy 应用程序,它在我的 linux 机器上运行良好,但是当我在 android 上部署相同的应用程序时,它在加载屏幕后崩溃。 注意:部署应用程序时没有显示错误。 它使用互联网,我也授予了互联网权限。 在android中加载屏幕后我的应用程序总是崩溃的原因可能是什么。 如果它们有什么不同,这是我的导入。

import kivy
from kivy.app import App
from kivy.uix.widget import Widget
from kivy.uix.label import Label
from kivy.uix.button import Button
from kivy.uix.textinput import TextInput
from kivy.uix.floatlayout import FloatLayout
from kivy.properties import ObjectProperty
from kivy.clock import Clock
from functools import partial
import pandas as pd
import time
from datetime import datetime
import plyer

这是我的完整代码: https://github.com/sfsdsfdf/123

【问题讨论】:

  • 您可能需要处理运行时权限请求。见documentation
  • Android 是否支持winsound
  • @JohnAnderson 我应该尝试删除它吗?

标签: python android kivy


【解决方案1】:

我也发生了同样的事情,结果证明是 kivy 版本不匹配。我使用 Kivy 2.0.0 在 Linux 上开发,但 buildozer 使用的是 kivy 1.9.1 要修复,我必须修改 buildozer.spec 文件以指定 kivy 版本号。 首先删除缓存的 buildozer 文件:

rm ~./.buildozer

rm <project>/.buildozer

从此改变:

requirements = python3,kivy

到这里:

requirements = python3,kivy==2.0.0,<your other requirements here>

确保您的所有文件扩展名都包含在 builder.spec 中 例如我必须添加 json 和 wav

# (list) Source files to include (let empty to include all the files)
source.include_exts = py,png,jpg,kv,atlas,json,wav

我还注意到 kivy 版本在

.buildozer/android/platform/python-for-android/pythonforandroid/recipes/kivy/__init__.py

不正确。我不知道为什么或如何设置,所以我只是手动编辑了文件。它有 v 1.11.1,但我使用的是 2.0.0,所以我把它改成了那个。

class KivyRecipe(CythonRecipe):
    version = '2.0.0'
    url = 'https://github.com/kivy/kivy/archive/{version}.zip'
    name = 'kivy'

然后运行

buildozer -v android debug

它应该会生成一个有效的 .apk 文件。

如果您仍然有错误,请在启用 USB 调试的情况下从模拟器或手机运行应用程序并使用

abd logcat tee debug.log 

并查找错误。

【讨论】:

    猜你喜欢
    • 2017-05-08
    • 2021-07-28
    • 1970-01-01
    • 2016-07-28
    • 1970-01-01
    • 2015-05-21
    • 1970-01-01
    • 2020-11-29
    • 1970-01-01
    相关资源
    最近更新 更多