
Cocos2dx官方源码包里面已经提供了sqlite头文件和相关库文件,考虑到AndroID环境的差异性,故最好使用sqlite源码进行编译。
@R_301_4777@源码下载地址:https://www.sqlite.org/download.html
下载后解压并将shell.c,@R_301_4777@.c,@R_301_4777@.h,@R_301_4777@ext.h四个文件拷贝到Cocos2dx工程源码目录。
编辑proj.androID\jni\AndroID.mk,在LOCAL_SRC_fileS中添加shell.c和@R_301_4777@.c
2. sqlite API调用方法最简单的调用方法是,先调用@R_301_4777@_open函数打开数据中库文件,然后调用@R_301_4777@_exec函数执增删改查等 *** 作。在@R_301_4777@_exec函数中设置的回调函数中处理查询结果数据。
3. AndroID真机环境找不到sqlite数据库文件AndroID真机环境调试发现,@R_301_4777@_open函数会返回sqlITE_CANtopEN。
需要把sqlite数据库文件拷贝到一个可读写的目录进行 *** 作,可以这样处理:
fileUtils * pfileUtils = fileUtils::getInstance(); std::string sqlfile = pfileUtils->fullPathForfilename(szsqliteDatabase); @R_301_4777@ * psqliteDatabase = nullptr; int ret = @R_301_4777@_open(sqlfile.c_str(),&psqliteDatabase); if (sqlITE_OK != ret) { cclOG("Open database file Failed! [%d] [%s]",ret,sqlfile.c_str()); // AndroID打开assets目录下的sqlite文件会失败(从更新的资源目录加载sqlite文件不会失败) // 先将sqlite数据库文件拷贝到getWritablePath()目录下,然后在加载 std::string tmpfile = pfileUtils->getWritablePath() + szsqliteDatabase; if(false == pfileUtils->writeDataTofile(pfileUtils->getDataFromfile(sqlfile),tmpfile)) { cclOG("Failed to create sql tmp data file!"); return; } int ret = @R_301_4777@_open(tmpfile.c_str(),&psqliteDatabase); if (sqlITE_OK != ret) { cclOG("Open database file Failed! [%d] [%s]",tmpfile.c_str()); return; } } 特此笔记。 http://www.jb51.cc/article/p-qxuodgkf-hr.html 总结
以上是内存溢出为你收集整理的Cocos2dx Android真机环境使用Sqlite数据库全部内容,希望文章能够帮你解决Cocos2dx Android真机环境使用Sqlite数据库所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)