Android应用程序中的Cocos2d-x扩展
我在一个属于Cocos2d-x项目的Android应用程序中使用Android应用程序中的Cocos2d-x扩展,android,eclipse,xcode,cocos2d-x,Android,Eclipse,Xcode,Cocos2d X,我在一个属于Cocos2d-x项目的Android应用程序中使用CCHttpRequest时遇到问题。具体地说,我在Eclipse中构建时会遇到一系列构建错误,而在Xcode中构建iOS应用时却没有 我在Eclipse中(但不是在Xcode中)收到的一个构建错误示例是: 此错误适用于以下行: CCHttpResponse *response = (CCHttpResponse *)data; Eclipse和Xcode项目都引用相同的.cpp文件。为了让Eclipse项目了解Cocos2d-x
CCHttpRequest
时遇到问题。具体地说,我在Eclipse中构建时会遇到一系列构建错误,而在Xcode中构建iOS应用时却没有
我在Eclipse中(但不是在Xcode中)收到的一个构建错误示例是:
此错误适用于以下行:
CCHttpResponse *response = (CCHttpResponse *)data;
Eclipse和Xcode项目都引用相同的.cpp
文件。为了让Eclipse项目了解Cocos2d-x扩展,我做了以下工作:
HelloWorldScene.cpp
文件中还有一些其他令人惊讶的错误。例如:
无法解析符号“vector”
我猜问题与我如何在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)
应用程序.mk
APP_STL := gnustl_static
APP_CPPFLAGS := -frtti -DCOCOS2D_DEBUG=1
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)
APP_STL := gnustl_static
APP_CPPFLAGS := -frtti -DCC_ENABLE_CHIPMUNK_INTEGRATION=1 -DCOCOS2D_DEBUG=1
我认为
Android.mk
和Application.mk
有一些问题,因为在我的应用程序中Android.mk
加载了更多的文件,并且我的应用程序在Android和ios平台上都正常运行。你可以看到不同之处。。这可能对你有帮助。我也在使用cocos2dx
库
Android.mk
APP_STL := gnustl_static
APP_CPPFLAGS := -frtti -DCOCOS2D_DEBUG=1
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)
APP_STL := gnustl_static
APP_CPPFLAGS := -frtti -DCC_ENABLE_CHIPMUNK_INTEGRATION=1 -DCOCOS2D_DEBUG=1
应用程序.mk
APP_STL := gnustl_static
APP_CPPFLAGS := -frtti -DCOCOS2D_DEBUG=1
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)
APP_STL := gnustl_static
APP_CPPFLAGS := -frtti -DCC_ENABLE_CHIPMUNK_INTEGRATION=1 -DCOCOS2D_DEBUG=1
您是否使用
create\u project.py
命令或手动创建了此项目?两者都没有。我使用了Cocos2d-x.ok附带的createandroid shell脚本。我认为cocos2d库没有加载它的类。您能否发布jni
文件夹中的Android.mk
和Application.mk
文件的文本。确定发布了Android.mk和Application.mk。将本地_模块和本地_模块_文件名更改为您认为有帮助的值。虽然我还添加了/Ur/Cup/C++ +4.2.1到GNU C++中,包含在Eclipse中。我还做了几次项目->索引->重建。我还关闭并重新打开了Eclipse。上述工作的一些组合:-)实际上,似乎有必要将本地模块和本地模块文件名更改回我的原始值。