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运行于自己的真机上了!结果如下:
14466241_201301141545281.jpg



注意:在上面的DEMO中,使用了数据库中表格的新建,记录的写入及读取操作等。













本文转自朱先忠老师51CTO博客,原文链接:http://blog.51cto.com/zhuxianzhong/1440559 ,如需转载请自行联系原作者




相关文章
|
4月前
|
Java 关系型数据库 数据库
Android App连接真机步骤与APP的开发语言和工程结构讲解以及运行实例(超详细必看)
Android App连接真机步骤与APP的开发语言和工程结构讲解以及运行实例(超详细必看)
36 0
|
6月前
|
存储 传感器 定位技术
《移动互联网技术》 第四章 移动应用开发: Android Studio开发环境的使用方法:建立工程,编写源程序,编译链接,安装模拟器,通过模拟器运行和调试程序
《移动互联网技术》 第四章 移动应用开发: Android Studio开发环境的使用方法:建立工程,编写源程序,编译链接,安装模拟器,通过模拟器运行和调试程序
77 0
|
2月前
|
Java Android开发
[Android AIDL] --- AIDL工程搭建
[Android AIDL] --- AIDL工程搭建
18 0
|
6月前
|
测试技术 开发工具 数据库
《移动互联网技术》第十一章 Android应用工程案例: 掌握Android系统的需求分析和设计以及 Android项目的程序测试和版本管理方法
《移动互联网技术》第十一章 Android应用工程案例: 掌握Android系统的需求分析和设计以及 Android项目的程序测试和版本管理方法
71 0
|
8月前
|
XML Java Android开发
#4,Android Studio Android程序结构 工程目录介绍 文件作用 运行配置文件AndroidManifest.xml
#4,Android Studio Android程序结构 工程目录介绍 文件作用 运行配置文件AndroidManifest.xml
|
Android开发
android和Flutter的混合工程Demo
Flutter和Android混合工程的启动逻辑与纯Flutter应用程序的启动逻辑略有不同。在混合工程中,您需要在Android项目中添加一些额外的代码来启动Flutter引擎并加载Flutter代码。以下是整个app的启动逻辑的详细解释
android和Flutter的混合工程Demo
|
Android开发 iOS开发
android和flutter的混合工程启动逻辑
Flutter混合工程是指将Flutter代码集成到现有原生Android或iOS应用程序中的过程。在这种情况下,您需要在原生应用程序中添加一些代码来启动Flutter引擎并加载Flutter代码。以下是Flutter混合工程启动逻辑的详细说明
android和flutter的混合工程启动逻辑
|
程序员 Android开发 开发者
Android开发:往项目工程里面新引入工具包的步骤
在Android开发过程中,有些时候会根据实际需要,要往项目里面引入工具包,作为初级开发者或者刚开始入门的Android开发者来说会不太熟练怎么引入,所以往项目工程里面新引入工具包也是必备技能。那么本篇博文就来分享一下给项目工程里面引入工具包的步骤,只分享给有需要的人。
163 0
Android开发:往项目工程里面新引入工具包的步骤
|
Dart Android开发
使用Android Studio 创建flutter工程
使用Android Studio 创建flutter工程
215 0
|
Java 测试技术 API
第八章 自定义Android Gradle工程
Android Gradle为我们提供了大量的DSL,我们使用这些DSL定义配置我们的工程以满足我们项目中不同的需求。这些DSL有很多,在上一章演示Android Gradle工程示例的时候,我们已经大概介绍了compileSdkVersion、buildToolsVersion以及defaultConfig等,这一章我们再详细介绍一些常用的DSL配置,这些配有有签名信息、构建类型、代码混淆、zipAlign对齐压缩等。
175 0
第八章 自定义Android Gradle工程