【问题标题】:Buildozer sqlite3 operational errorBuildozer sqlite3 操作错误
【发布时间】:2016-06-13 05:51:49
【问题描述】:

我正在尝试使用 buildozer 调试 kivy 应用程序并将其部署到我的 (android) 手机。该应用程序的一部分是需要 sqlite3 的地图(使用 mbtiles 的地图视图)。做了一些研究,我发现我需要有

requirements = kivy,sqlite3,futures,requests,openssl

当我部署我的应用并打开地图时,它会崩溃并显示以下错误消息

I/python  (13917):  sqlite3.OperationalError: unable to open database file

指向数据库的路径是全长的。我将文件权限更改为数据库的 rw-rw-rw- 和 rwxrwxrwx 以及包含数据库的文件夹(之前它们是 rw-rw-r-- / rwxrwxr-- )。我在文件夹 .buildozer/android/app/"databasefolder"/database 中执行此操作。它仍然不起作用,我想知道这是否是更改文件权限的正确方法。 我需要更改规范文件的 android.permissions 中的任何内容吗?

我不是唯一遇到此问题的人,但建议的解决方案对我不起作用,或者我没有做正确的事情。

会不会有其他原因导致数据库打不开?

感谢您的帮助!

【问题讨论】:

  • 你想在哪里打开它?
  • 我在我的 Windows 电脑上编写了 kivy 应用程序,它运行良好。我使用虚拟机 (Ubuntu) 将应用程序部署到我的手机。当我在那里打开它时,它崩溃了。
  • 是的,但是您要在哪里打开文件?它的位置在哪里?
  • 抱歉,数据库 (.mbtiles) 位于 .buildozer/android/app/map/ 中,而试图打开它的 mapview 类位于 .buildozer/android/app/libs/ garden/garden.mapview/mapview 并称为 mbtsource.py。我认为传递给 mbtsource.py 的文件名变量(路径)是正确的,但它无法执行 self.db = sqlite3.connect(filename)。

标签: python sqlite kivy buildozer


【解决方案1】:

好吧,在这种情况下,简单的答案是应该给出 db 的相对路径。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-09-17
    • 2022-06-16
    • 1970-01-01
    • 2020-07-18
    • 1970-01-01
    • 1970-01-01
    • 2014-10-16
    • 1970-01-01
    相关资源
    最近更新 更多