所以我正在尝试使用 cocos2d-x-3.0 设置一个项目。我可以很好地设置所有内容,然后在 Eclipse 中导入并运行我的新项目,没有任何问题;但是,一旦我main.cpp
第一次打开文件,就会弹出一堆错误,我无法再编译我的项目。它给我的错误Unresolved inclusion: AppDelegate.h
是#include "AppDelegate.h"
#include "AppDelegate.h"
#include "cocos2d.h"
#include "CCEventType.h"
#include "platform/android/jni/JniHelper.h"
#include <jni.h>
#include <android/log.h>
#define LOG_TAG "main"
#define LOGD(...) __android_log_print(ANDROID_LOG_DEBUG,LOG_TAG,__VA_ARGS__)
using namespace cocos2d;
void cocos_android_app_init (struct android_app* app) {
LOGD("cocos_android_app_init");
AppDelegate *pAppDelegate = new AppDelegate();
}
然后我查看并注意到Classes
我的项目中的文件夹是空的,尽管项目中的Classes
文件夹中有类。所以我去添加了一个新Class
文件夹,其中包含指向项目文件夹中自动生成的 Classes 文件夹的链接。这再次解决了问题,但是如果我打开新Class
文件夹中的任何文件,它会突出显示大量无法解决的错误,并且我无法再编译。这是我的 AppDelegate.h 文件的一部分:
#ifndef _APP_DELEGATE_H_
#define _APP_DELEGATE_H_
#include "cocos2d.h"
/**
@brief The cocos2d Application.
The reason for implement as private inheritance is to hide some interface call by Director.
*/
class AppDelegate : private cocos2d::Application
{
cocos2d::Application
说的部分有错误Symbol 'Application' could not be resolved
。
编辑:重新制作项目后,我发现该Classes
文件夹在 Eclipse 中自动标记为已弃用。我能够创建一个新的(非链接)Class
文件夹,并手动添加预制类,并且不再出现任何错误。我不知道为什么会这样,但它奏效了。
从头开始,现在我只在四个文件之一中得到错误。在HelloWorldScene.cpp
:
// add a "close" icon to exit the progress. it's an autorelease object
auto closeItem = MenuItemImage::create( // Says "Invalid arguments" for the create call
"CloseNormal.png",
"CloseSelected.png",
CC_CALLBACK_1(HelloWorld::menuCloseCallback, this)); // "Symbol'_1' could not be resolved" (What is Symbol_1)?
closeItem->setPosition(Point(origin.x + visibleSize.width - closeItem->getContentSize().width/2 ,
origin.y + closeItem->getContentSize().height/2));
// create menu, it's an autorelease object
auto menu = Menu::create(closeItem, NULL);
menu->setPosition(Point::ZERO);
this->addChild(menu, 1);
Could not be resolved
那里还有一些Invalid arguments
错误。最让我困惑的是,在我打开文件并加载错误之前,一切都可以编译和运行。