【问题标题】:Android App created with Kivy (Buildozer) crashes on phone, but why?使用 Kivy (Buildozer) 创建的 Android 应用程序在手机上崩溃,但为什么?
【发布时间】:2015-02-25 14:58:56
【问题描述】:

我在使用 kivy 编写的应用程序时遇到了一些问题,使用 buildozer 打包的应用程序在我尝试在手机上运行时总是崩溃。在我的 PC 上,我使用 Ubuntu 14.10,并且在编译时没有任何错误(buildozer android debug)。然后我将它发送到我的智能手机上并安装并运行它,但它只是加载并在几秒钟后崩溃。顺便说一句,kivy 程序不是很大。 有人可以帮我吗?对不起我的语法不好;)

【问题讨论】:

  • 请提供您的应用程序的日志输出。运行buildozer android logcat 转储设备中的所有日志输出;从您的应用程序运行开始复制和粘贴,直到它崩溃。

标签: python-2.7 kivy


【解决方案1】:

尝试使用kivy-launcher,只需将您的 main.py 和其他文件并运行它,您就可以在日志目录中调试日志。然后,一旦你得到所有错误修复,构建一个 apk 并使用它。

【讨论】:

    【解决方案2】:

    如果您使用的是 kivy,并且您的应用加载了一些图像,那么没有问题。但是如果你使用一些其他的包比如 pygame 来加载图片,它就会崩溃。或者,如果您正在处理某些文件,例如读取或写入文本文件,它会崩溃。因为当您使用 buildozer 打包您的应用程序时,它会将您的应用程序的附加文件(.txt、.png)移动到不同的位置。因此,您的 python 文件无法在您指定的位置找到其他文件。 要解决此问题,请在您的 python 文件中进行一些更正,例如将附加文件的路径从 python 文件的当前目录更改为下面引用的路径。

    PATH = "/data/data/#package domain#.#package name#/files/app"

    在上面的路径中,将#package domain# 更改为您的包的域,将#package name# 更改为您的包名。 安装在安卓设备上的任何应用程序的所有附加文件都将转到此位置。

    试试这个。一切顺利。

    【讨论】:

      【解决方案3】:

      Buildozer.spec,使用以下设置

      Tittle= abc
      
      Package.name=abc
      
      Package.domain=org.abc
      

      包括您的所有文件,例如.png、txt 等

      Requirements= python3,kivy==2.0.0,kivymd, pillow,kivy-deps.angle,kivy-deps.glew,kivy-deps.sdl2
      

      取消注释 android.logcat。 现在确保您的手机处于开发者模式,将手机连接到计算机,打开 USB 调试,打开终端,

      cd abc
      sudo apt install scrcpy
      

      类型

      sudo apt install adb
      

      类型

      scrcpy
      

      您的手机将出现在您的计算机上。

      类型

      buildozer android debug deploy run logcat.
      adb logcat -s python
      

      在您的手机上运行您的应用程序(确保您的手机已连接到您的计算机);您的日志文件将出现

      【讨论】:

        猜你喜欢
        • 2020-11-02
        • 2021-08-02
        • 2022-10-21
        • 2017-12-05
        • 2020-10-25
        • 1970-01-01
        • 2016-07-28
        • 2022-01-10
        • 2017-02-14
        相关资源
        最近更新 更多