Cocos2dx Android真机环境使用Sqlite数据库

Cocos2dx Android真机环境使用Sqlite数据库,第1张

概述1. 下载Sqlite源码 Cocos2dx官方源码包里面已经提供了sqlite头文件和相关库文件,考虑到Android环境的差异性,故最好使用sqlite源码进行编译。 Sqlite3源码下载地址:https://www.sqlite.org/download.html 下载后解压并将shell.c, sqlite3.c,  sqlite3.h, sqlite3ext.h四个文件拷贝到Cocos 1. 下载sqlite源码

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数据库所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/1080999.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-27
下一篇2022-05-27

发表评论

登录后才能评论

评论列表(0条)

    保存