2013-07-09 39 views
0

我在使用CCHttpRequest作爲Cocos2d-x項目的Android應用程序時遇到問題。具體來說,當我在Eclipse中構建iOS應用程序時,我無法獲得構建錯誤。Android應用程序中的Cocos2d-x擴展

一個例子構建我接收在Eclipse(但不是在Xcode)錯誤是:

`Type 'CCHttpResponse' could not be resolved` 

此錯誤是行:

CCHttpResponse *response = (CCHttpResponse *)data; 

Eclipse和Xcode的項目引用相同.cpp文件。爲了使Eclipse項目瞭解的Cocos2D-X擴展的,我做了以下內容:

  1. 打開項目=>屬性=> C/C++通用=>路徑和符號=>源位置
  2. 點擊Link Folder...
  3. 檢查Link to folder in the file system
  4. 瀏覽的文件擴展名(在Xcode項目的工作)
  5. 單擊確定的文件夾,應用,和確定

請注意我的HelloWorldScene.cpp文件中還有一些令人驚訝的錯誤。例如:

Symbol 'vector' could not be resolved

我猜這個問題與我在Eclipse中設置的東西有關。由於我是Eclipse新手,我不確定要嘗試什麼。一切都在Xcode項目中建立並運行良好。

編輯#1:註釋的代碼負責大部分的Eclipse編譯錯誤之後,我發現了錯誤:

`make: *** [obj/local/armeabi/libgame.so] Error 1` 

我不知道這意味着什麼,但現在看來似乎可能是一個比未解決的符號更基本的錯誤。

Android.mk

LOCAL_PATH := $(call my-dir) 

include $(CLEAR_VARS) 

LOCAL_MODULE := game_shared 

LOCAL_MODULE_FILENAME := libgame 

LOCAL_SRC_FILES := hellocpp/main.cpp \ 
        ../../Classes/AppDelegate.cpp \ 
        ../../Classes/HelloWorldScene.cpp \ 
        ../../Classes/StringHelper.cpp 

LOCAL_C_INCLUDES := $(LOCAL_PATH)/../../Classes     

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) 

Application.mk

APP_STL := gnustl_static 
APP_CPPFLAGS := -frtti -DCOCOS2D_DEBUG=1 
+0

您是否使用'create_project.py'命令或手動創建了該項目? –

+0

也沒有。我使用了Cocos2d-x附帶的創建android shell腳本。 – SundayMonday

+1

好的。我認爲cocos2d庫不會加載它的類。你可以發佈'jni'文件夾中'Android.mk'和'Application.mk'文件的文本。 –

回答

2

我覺得Android.mkApplication.mk有一些問題,因爲在我的應用程序Android.mk加載多個文件,和我應用程序在Android和iOS平臺上都能正常運行。你可以看到不同之處......它可以幫助你。我也使用cocos2dx庫。

Android.mk

LOCAL_PATH := $(call my-dir) 

include $(CLEAR_VARS) 

LOCAL_MODULE := cocos2dcpp_shared 

LOCAL_MODULE_FILENAME := libcocos2dcpp 

LOCAL_SRC_FILES := hellocpp/main.cpp \ 
        ../../Classes/AppDelegate.cpp \ 
        ../../Classes/FixPhotoScene.cpp \ 
        ../../Classes/SplashScene.cpp \ 
        ../../Classes/TableViewTest.cpp\ 
        ../../Classes/ProcessImage.cpp \ 
        ../../Classes/TestUI.cpp 
LOCAL_C_INCLUDES := $(LOCAL_PATH)/../../Classes 

LOCAL_WHOLE_STATIC_LIBRARIES += cocos2dx_static 
LOCAL_WHOLE_STATIC_LIBRARIES += cocosdenshion_static 
LOCAL_WHOLE_STATIC_LIBRARIES += box2d_static 
LOCAL_WHOLE_STATIC_LIBRARIES += chipmunk_static 
LOCAL_WHOLE_STATIC_LIBRARIES += cocos_extension_static 

include $(BUILD_SHARED_LIBRARY) 

$(call import-module,cocos2dx) 
$(call import-module,cocos2dx/platform/third_party/android/prebuilt/libcurl) 
$(call import-module,CocosDenshion/android) 
$(call import-module,extensions) 
$(call import-module,external/Box2D) 
$(call import-module,external/chipmunk) 

應用。mk

APP_STL := gnustl_static 
APP_CPPFLAGS := -frtti -DCC_ENABLE_CHIPMUNK_INTEGRATION=1 -DCOCOS2D_DEBUG=1 
+0

將LOCAL_MODULE和LOCAL_MODULE_FILENAME更改爲您所擁有的值似乎有所幫助。儘管我還在Eclipse中將/usr/include/c++/4.2.1添加到GNU C++包含中。我也做了項目 - >索引 - >重建幾次。我也關閉並重新打開Eclipse。上述作品的一些組合:-) – SundayMonday

+0

其實它似乎chaning LOCAL_MODULE和LOCAL_MODULE_FILENAME回到我的原始值是必要的。 – SundayMonday