溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Win7+VS2010+cocos2d-x 2.1 Beta3+Sqlite工程向android平臺(tái)移植

發(fā)布時(shí)間:2020-07-06 04:12:12 來(lái)源:網(wǎng)絡(luò) 閱讀:689 作者:googlingman 欄目:游戲開發(fā)

Win7+VS2010+cocos2d-x 2.1 Beta3+Sqlite工程向android平臺(tái)移植

題外話: 有時(shí)打開博客想寫點(diǎn)什么時(shí),心中感到有點(diǎn)酸楚,盡管語(yǔ)言不那么精簡(jiǎn),或者說(shuō)是準(zhǔn)確,而且很可能文中的總結(jié)極不成熟,甚至還夾帶些錯(cuò)誤;但是,它們畢竟是自 己經(jīng)過(guò)“痛苦”的掙扎后取得的一點(diǎn)成績(jī),于是,還是下決心記下來(lái),一方面充實(shí)了自己塵封的筆記,另一方面也不敢獨(dú)享-因?yàn)槲铱吹接心敲炊嗟呐笥寻炎约旱男?血也無(wú)保留地奉獻(xiàn)出來(lái)?;蛟S,我的這一點(diǎn)一滴也能成為他們決戰(zhàn)BUGS中的LITTLE TIP吧。



注意:本博客轉(zhuǎn)移自本人約一年前的ITPUB博客文章,為的是便于學(xué)員參考之用。


最近在致力于使用COCOS2D-X 開發(fā)ANDROID平臺(tái)的程序,于是,集成sqlite不知覺中成為了必須攻克的堡壘之一。有關(guān)sqlite的C++ wrapper在網(wǎng)絡(luò)上存在不少,但是能夠直接應(yīng)用于如題所示的開發(fā)環(huán)境的實(shí)在不多(也許自己這方面知識(shí)太少)。終于,我在CSDN中找到了一個(gè) sqlite的C++ wrapper-SQLiteDatabase(http://download.csdn.net/download/jiuhaolong11 /4822274)。除了有一個(gè)平臺(tái)依賴的uSleep函數(shù)(我暫時(shí)把它去掉了--或者說(shuō)“短路”了更合適些)外,其他感覺沒有什么問(wèn)題(至少在現(xiàn)在學(xué)習(xí) 時(shí)是這樣的)。

于是,在WIN32下編寫DEMO,沒有問(wèn)題,一切OK。但是,最終移植到ANDROID如何呢--畢竟這是最終目標(biāo)!根 據(jù)我2012年9月份寫的那篇博文(http://space.itpub.net/14466241/viewspace-744390),我在 ANDROID平臺(tái)重新編譯,結(jié)果出現(xiàn)錯(cuò)誤。大致是說(shuō),存在兩個(gè)main函數(shù)。注意:一開始,我把sqlite源碼下的四個(gè)文件(包括shell.c)一起通過(guò)android.mk進(jìn)行編譯了。其實(shí),根據(jù)shell.c的作用,在ANDROID平臺(tái)編譯時(shí)應(yīng)該把它排除在外。

于是,我最終的android.mk內(nèi)容如下:
-------------------------------
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還很不成熟。

經(jīng)過(guò)上面的修改后,一切順利,終于可以把DEMO運(yùn)行于自己的真機(jī)上了!結(jié)果如下:
Win7+VS2010+cocos2d-x 2.1 Beta3+Sqlite工程向android平臺(tái)移植



注意:在上面的DEMO中,使用了數(shù)據(jù)庫(kù)中表格的新建,記錄的寫入及讀取操作等。

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI