Win7+VS2010+cocos2d-x 2.1 Beta3+Sqlite工程向android平台移植
题外话:
有时打开博客想写点什么时,心中感到有点酸楚,尽管语言不那么精简,或者说是准确,而且很可能文中的总结极不成熟,甚至还夹带些错误;但是,它们毕竟是自
己经过“痛苦”的挣扎后取得的一点成绩,于是,还是下决心记下来,一方面充实了自己尘封的笔记,另一方面也不敢独享-因为我看到有那么多的朋友把自己的心
血也无保留地奉献出来。或许,我的这一点一滴也能成为他们决战BUGS中的LITTLE TIP吧。
注意:本博客转移自本人约一年前的ITPUB博客文章,为的是便于学员参考之用。
最近在致力于使用COCOS2D-X
开发ANDROID平台的程序,于是,集成sqlite不知觉中成为了必须攻克的堡垒之一。有关sqlite的C++
wrapper在网络上存在不少,但是能够直接应用于如题所示的开发环境的实在不多(也许自己这方面知识太少)。终于,我在CSDN中找到了一个
sqlite的C++
wrapper-SQLiteDatabase(http://download.csdn.net/download/jiuhaolong11
/4822274)。除了有一个平台依赖的uSleep函数(我暂时把它去掉了--或者说“短路”了更合适些)外,其他感觉没有什么问题(至少在现在学习
时是这样的)。
于是,在WIN32下编写DEMO,没有问题,一切OK。但是,最终移植到ANDROID如何呢--毕竟这是最终目标!根
据我2012年9月份写的那篇博文(http://space.itpub.net/14466241/viewspace-744390),我在
ANDROID平台重新编译,结果出现错误。大致是说,存在两个main函数。注意:一开始,我把sqlite源码下的四个文件(包括shell.c)一起通过android.mk进行编译了。其实,根据shell.c的作用,在ANDROID平台编译时应该把它排除在外。
于是,我最终的android.mk内容如下:
-------------------------------
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := game
#LOCAL_MODULE_FILENAME := libgame
LOCAL_SRC_FILES := hellocpp/main.cpp \
../../Classes/AppDelegate.cpp \
../../Classes/HelloWorldScene.cpp \
../../Classes/ListViewTestLayer.cpp \
../../Classes/SQLiteDatabase.cpp \
../../Classes/SQLiteResultSet.cpp \
../../Classes/sqlite3.c \
../../Classes/CCListView/CCListView.cpp \
../../Classes/CCListView/CCListViewCell.cpp
LOCAL_C_INCLUDES := $(LOCAL_PATH)/../../Classes \
$(LOCAL_PATH)/../../Classes/CCListView \
$(LOCAL_PATH)/../../../cocos2dx \
$(LOCAL_PATH)/../../../cocos2dx/platform. \
$(LOCAL_PATH)/../../../cocos2dx/include \
$(LOCAL_PATH)/../../../cocosDension/include
LOCAL_WHOLE_STATIC_LIBRARIES := cocos2dx_static cocosdenshion_static cocos_extension_static
include $(BUILD_SHARED_LIBRARY)
$(call import-module,CocosDenshion/android) \
$(call import-module,cocos2dx) \
$(call import-module,extensions)
------------------------------------------------------
另外,为了编写DEMO的方便,我把cocos2d-x老版本中的CCListView使用目前的API改写了一些-感觉它还是很好用的;而目前2.1BETA 3中的CCTableView还很不成熟。
经过上面的修改后,一切顺利,终于可以把DEMO运行于自己的真机上了!结果如下:
注意:在上面的DEMO中,使用了数据库中表格的新建,记录的写入及读取操作等。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。