【发布时间】: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