求助,编译Android平台时不到新添加的类

编译Windows版时一切正常(VS3013),但编译Android平台时找不到新添加的类,但生成项目时自动创建的HelloworldScene可以正常使用,其他新添加的类都找不到。

TestClass在Classes目录下,如果不引用TestClass类,可以编译通过。

错误信息如下:

python D:/cocos/game2048/proj.android/build_native.py -b release all 
Android NDK: WARNING: APP_PLATFORM android-14 is larger than android:minSdkVersion 9 in ./AndroidManifest.xml    
make.exe: Entering directory `D:/cocos/game2048/proj.android'
 Compile++ thumb: cocos2dcpp_shared <= AppDelegate.cpp
 Compile++ thumb: cocos2dcpp_shared <= HelloWorldScene.cpp
jni/../../Classes/HelloWorldScene.cpp: In member function 'virtual bool HelloWorld::init()':
jni/../../Classes/HelloWorldScene.cpp:76:28: error: 'TestClass' has not been declared
     director->replaceScene(TestClass::createScene());
                            ^
At global scope:
cc1plus.exe: warning: unrecognized command line option "-Wno-extern-c-compat"
cc1plus.exe: warning: unrecognized command line option "-Wno-extern-c-compat"
make.exe: ***  Error 1
make.exe: *** Waiting for unfinished jobs....


```


代码:
    auto director = Director::getInstance();
    director->replaceScene(TestClass::createScene());



```


TestClass类内容:
#ifndef TESTCLASS_H_
#define TESTCLASS_H_
#include "cocos2d.h"

class TestClass : public cocos2d::Layer {
public:
    TestClass();
    virtual ~TestClass();
    // there's no 'id' in cpp, so we recommend returning the class instance pointer
    static cocos2d::Scene* createScene();

    // Here's a difference. Method 'init' in cocos2d-x returns bool, instead of returning 'id' in cocos2d-iphone
    virtual bool init();

    // a selector callback
    void menuCloseCallback(cocos2d::Ref* pSender);

    // implement the "static create()" method manually
    CREATE_FUNC(TestClass);
};

#endif /* TESTCLASS_H_ */


```


Android.mk 文件配置:
LOCAL_PATH := $(call my-dir)

include $(CLEAR_VARS)

$(call import-add-path,$(LOCAL_PATH)/../../cocos2d)
$(call import-add-path,$(LOCAL_PATH)/../../cocos2d/external)
$(call import-add-path,$(LOCAL_PATH)/../../cocos2d/cocos)

LOCAL_MODULE := cocos2dcpp_shared

LOCAL_MODULE_FILENAME := libcocos2dcpp

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

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

LOCAL_STATIC_LIBRARIES := cocos2dx_static

include $(BUILD_SHARED_LIBRARY)

$(call import-module,.)



```

确认几个点:

  1. TestClass.cpp/TestClass.h在Classes目录下。是物理位置,不仅仅是项目位置(Windows下创建默认不是Classes,需要手动移动)

2.TestClass是一个正常可以使用的类

3.LOCAL_SRC_FILES := hellocpp/main.cpp
…/…/Classes/AppDelegate.cpp
…/…/Classes/HelloWorldScene.cpp
…/…/Classes/TestClass.cpp
不能有多余的空格。

最开始是没有配置Android.mk,第二次试的时候忘了include ,谢谢~~