sqlite - 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
解决方案
数据库在本地创建,用于模拟器下调试。否则,您在调试期间对数据库所做的每一项更改都将发送给您的所有用户,这不是您想要的。
如果您希望您的应用程序附带预先存在的数据库,请查看开发人员指南数据库部分https://www.codenameone.com/manual/files-storage-networking.html
具体找getDatabasePath()
。您可以通过删除~/.cn1
目录的内容(这将删除您的调试数据库)在调试器中模拟这一点。
推荐阅读
- javascript - Vue JS 访问“父组件的兄弟组件”的对象
- go - 如何在Golang rest中输出json格式错误,特别是引用坏字段
- python - gi.require_version('Gdk', '3.0')
- docker - 如何在谷歌云平台上使用docker bridge网络?
- geolocation - 可以使用 S2 库找到 K 个最近点(并且有效)?
- html - 更改引导框架的 NAVBAR 颜色
- java - 如何在 JTextArea 列表中浏览此代码的结果?
- javascript - 防止 ESModules 在使用脚本标签导入时被延迟
- swift - 枚举大小写的错误原始值必须是文字
- reactjs - 模拟时尝试在酶中测试 FormControlLabel 不会触发点击