首页 > 解决方案 > Sqlite 和代号在模拟器上有效,但在我的手机上无效

问题描述

您好,我正在使用 Codenameone 和 sqllite 开发一个基本的移动应用程序,问题是在我的手机中尝试测试我的应用程序时,我注意到该应用程序有一个空数据库,或者它在计算机的模拟器中正常工作时没有连接到数据库. 我正在使用这一行来打开或创建数据库:

db=Display.getInstance().openOrCreate("/astrax.db");

这是我得到的例外:

android.database.sqlite.SQLiteCantopenDatabaseException: unknown error code 1294 SQLITE_CANTOPEN_ENOENT[1294]); could not open database

这里有一些截图可以让问题更清楚:[![在此处输入图像描述][1]][1][2][2]

任何建议都会有所帮助,谢谢。[1]:https ://i.stack.imgur.com/Xpewr.png [2]:https ://i.stack.imgur.com/YessH.jpg

标签: sqlitecodenameone

解决方案


数据库在本地创建,用于模拟器下调试。否则,您在调试期间对数据库所做的每一项更改都将发送给您的所有用户,这不是您想要的。

如果您希望您的应用程序附带预先存在的数据库,请查看开发人员指南数据库部分https://www.codenameone.com/manual/files-storage-networking.html

具体找getDatabasePath()。您可以通过删除~/.cn1目录的内容(这将删除您的调试数据库)在调试器中模拟这一点。


推荐阅读