我可以在IDE(FB)中运行时写入db,而打包后,应用程序不会写入sqlite db,为什么?提前致谢。
答案 0 :(得分:0)
可能的原因是您安装的Air应用程序无法解析sqlite文件的路径。
我通常做的是使用File类的一个静态公共属性来解析我的sqlite文件,例如。
databaseConnection = new SQLConnection();
databaseConnection.addEventListener(SQLEvent.OPEN, onOpen);
databaseConnection.addEventListener(SQLErrorEvent.ERROR, onError);
databaseConnection.openAsync(File.applicationDirectory.resolvePath('mydb.sqlite'));
这里的关键位是 File.applicationDirectory.resolvePath('mydb.sqlite')行,在这个例子中,AIR将在应用程序所在的目录中查找名为mydb.sqlite的文件。安装到 - 在您的开发环境中,这将与bin-debug文件夹(或您正在编译的任何文件夹)相同。
希望有帮助,如果没有,如果你可以发布你正在使用的代码,你会得到什么错误,我会尽力帮助你。
答案 1 :(得分:0)
最可能的原因是您的数据库文件位于应用程序目录中,该目录是只读的。
来自Flex 3.5语言参考:
File.applicationDirectory - 安装应用程序的只读目录(以及任何已安装的资产)
如果是这种情况,只需使用File.applicationStorageDirectory即可,但不仅仅是简单的修复。
希望这有帮助。
<磷>氮