[结贴]用eclipse打包的一个问题

项目用的cocostudio最新版建的cocos2dx2.2.3,导入到eclipse里面编译的时候出现

In file included from jni/…/…/Classes/AppDelegate.cpp:2:0:
jni/…/…/Classes/custome/StartMenu.h:8:17: error: ‘ui’ is not a namespace-name
jni/…/…/Classes/custome/StartMenu.h:8:20: error: expected namespace-name before ‘;’ token
jni/…/…/Classes/custome/StartMenu.h:15:37: error: ‘TouchEventType’ has not been declared
jni/…/…/Classes/custome/StartMenu.h:16:35: error: ‘TouchEventType’ has not been declared
jni/…/…/Classes/custome/StartMenu.h:19:2: error: ‘UILayer’ does not name a type
make: *** Error 1

这样的问题,在vs里可以编 第一次用这个库不知道需要注意啥 谢谢大家~


用老版本引擎的同学,在build的时候把环境变量改成2.2.3,要不没有cocostudio库

楼主可以参见下这个Android.mk的写法…

https://github.com/chukong/CocoStudioSamples/blob/master/SampleUIAnimation/proj.android/jni/Android.mk

没有正确的引入cocostudio的库。
楼主能把引入cocostudio扩展的代码提上来吗?

是Android.mk文件么?

UI和Gui属于别名,正常情况下使用任意一个方法都是可以的。根据提示,你的namespace后面没有分号,请检查是否添加。

好像没啥不同啊。。。。

如果namespace后面没有分号在vs里都会报错的呀 检查了 后面有分号啊

#include “cocos2d.h”
#include “cocos-ext.h”

USING_NS_CC;
using namespace ui;
USING_NS_CC_EXT;

这样导入的

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/AStar/AStar.cpp
…/…/Classes/AStar/AStarNBDL.cpp
…/…/Classes/battle/BattleScene.cpp
…/…/Classes/battle/map/BBackgroundLayer.cpp
…/…/Classes/battle/map/BMapLayer.cpp
…/…/Classes/character/Character.cpp
…/…/Classes/character/CharacterInfo.cpp
…/…/Classes/character/IDCreatePro.cpp
…/…/Classes/character/Monster.cpp
…/…/Classes/character/Player.cpp
…/…/Classes/character/animation/CharacterSp.cpp
…/…/Classes/character/animation/PlayerSp.cpp
…/…/Classes/city/CityScene.cpp
…/…/Classes/config/BuildingConfig.cpp
…/…/Classes/config/BuildingConst.cpp
…/…/Classes/config/BuildingMO.cpp
…/…/Classes/config/ItemConfig.cpp
…/…/Classes/config/ItemMO.cpp
…/…/Classes/config/MonsterConfig.cpp
…/…/Classes/config/MonsterMO.cpp
…/…/Classes/config/PlayerConfig.cpp
…/…/Classes/config/PlayerMO.cpp
…/…/Classes/config/ResourceBuildingConfig.cpp
…/…/Classes/config/ResourceBuildingMO.cpp
…/…/Classes/config/ResourceConfig.cpp
…/…/Classes/config/ResourceMO.cpp
…/…/Classes/config/SceneObjConfig.cpp
…/…/Classes/config/SceneObjMO.cpp
…/…/Classes/custome/SceneManager.cpp
…/…/Classes/custome/StartMenu.cpp
…/…/Classes/custome/Util.cpp
…/…/Classes/frame/FrameProcessor.cpp
…/…/Classes/hero/HeroInfo.cpp
…/…/Classes/hero/HeroVO.cpp
…/…/Classes/map/ArriveProcessor.cpp
…/…/Classes/map/BackgroundLayer.cpp
…/…/Classes/map/BuildingInfo.cpp
…/…/Classes/map/BuildingLayer.cpp
…/…/Classes/map/CharacterLayer.cpp
…/…/Classes/map/GridInfo.cpp
…/…/Classes/map/GridVO.cpp
…/…/Classes/map/ItemLayer.cpp
…/…/Classes/map/MapInfo.cpp
…/…/Classes/map/MapLayer.cpp
…/…/Classes/map/MapMessage.cpp
…/…/Classes/map/MapMO.cpp
…/…/Classes/publicVO/CPoint.cpp
…/…/Classes/sceneObj/BelongBuilding.cpp
…/…/Classes/sceneObj/BelongBuildingSp.cpp
…/…/Classes/sceneObj/Building.cpp
…/…/Classes/sceneObj/BuildingSp.cpp
…/…/Classes/sceneObj/ResBuilding.cpp
…/…/Classes/sceneObj/ResBuildingSp.cpp
…/…/Classes/sceneObj/Resource.cpp
…/…/Classes/sceneObj/ResourceSp.cpp
…/…/Classes/sceneObj/SceneObj.cpp
…/…/Classes/sceneObj/SceneObjInfo.cpp
…/…/Classes/sceneObj/SceneObjSp.cpp
…/…/Classes/tinyXml/tinystr.cpp
…/…/Classes/tinyXml/tinyxml.cpp
…/…/Classes/tinyXml/tinyxmlerror.cpp
…/…/Classes/tinyXml/tinyxmlparser.cpp
…/…/Classes/ui/AlertLayer.cpp
…/…/Classes/ui/WorldUILayer.cpp
…/…/Classes/ui/alertVO/AlertVO.cpp
…/…/Classes/world/WorldScene.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文件

USING_NS_CC;
USING_NS_CC_EXT;
using namespace cocos2d::gui;

复制替换你的。

一样不行。。。 :6:

using namespace cocos2d::gui;
USING_NS_CC;
USING_NS_CC_EXT;

复制替换

一样不行。。。。话说本质问题是啥?

定义的宏把;弄乱了

那能怎么办啊。。。。话说这问题不会就我存在吧?

你能把替换后的代码和报错信息写上来吗?

startMenu.h

#ifndef STARTSPRITE
#define STARTSPRITE

#include “cocos2d.h”
#include “cocos-ext.h”

using namespace cocos2d::gui;
USING_NS_CC;
USING_NS_CC_EXT;

class StartMenu : public CCScene
{
public:
bool init();
void startHandle(CCObject *pSender,TouchEventType type);
void endHandle(CCObject *pSender,TouchEventType type);

private:
UILayer* startMainUI;
};

#endif

D:/111/android-ndk-r8e-windows-x86/android-ndk-r8e/build/core/add-application.mk:128: Android NDK: WARNING: APP_PLATFORM android-14 is larger than android:minSdkVersion 8 in ./AndroidManifest.xml
"Compile++ thumb : cocos2dcpp_shared <= AppDelegate.cpp
In file included from jni/…/…/Classes/AppDelegate.cpp:2:0:
jni/…/…/Classes/custome/StartMenu.h:7:26: error: ‘gui’ is not a namespace-name
jni/…/…/Classes/custome/StartMenu.h:7:29: error: expected namespace-name before ‘;’ token
jni/…/…/Classes/custome/StartMenu.h:15:37: error: ‘TouchEventType’ has not been declared
jni/…/…/Classes/custome/StartMenu.h:16:35: error: ‘TouchEventType’ has not been declared
jni/…/…/Classes/custome/StartMenu.h:19:2: error: ‘UILayer’ does not name a type
make: *** Error 1

与我用的ndk版本有关么?我用的r8e

UIWidget.h CompatibleClasses.h 你查下你的引擎里有这两个文件吗?
cocos2d-x-2.2.2\extensions\CocoStudio\GUI\UIWidgets\Compatible