2013-07-09 20 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