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中,使用了数据库中表格的新建,记录的写入及读取操作等。

更多相关文章

  1. Android坦克大战游戏设计解析一
  2. android工程中引入第三方JAR包后安装APK时老是提示找不到库文件
  3. 感谢你们的反馈,让我们携手为全球亿万用户打造出色的 Android(安
  4. 深入探索编译插桩技术(四、ASM 探秘)
  5. [置顶] 开发第一个Android设备驱动程序
  6. Win32上不装Cygwin使用NDK编译
  7. Visual Studio 跨平台开发实战--- Hello Xamarin! [Visual Studi
  8. android批量安装APK
  9. 【cocos2dx-3.0beta-制作flappybird】就要结束了吗—Android交叉

随机推荐

  1. (2) 搭建 Android(安卓)系统开发环境
  2. Android(安卓)SDK源码提取Python脚本(4.0
  3. Android五种存储方式
  4. Android(安卓)实现滚动数字的TextView
  5. 关于ANDROID NATIVE 的No implementation
  6. 获取Android状态栏的高度
  7. android 关闭弹出键盘
  8. Android安装apk文件,适配Android(安卓)7.0
  9. Android(安卓)常用颜色列表
  10. Android(安卓)Studio 新建编辑条 点击按