1

そこで、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解決できないエラーの TON が強調表示され、コンパイルできなくなります。これが私の 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フォルダーを作成し、事前に作成されたクラスを手動で追加することができ、エラーは発生しなくなりました。これがなぜなのかわかりませんが、うまくいきました。

それをスクラッチすると、4 つのファイルのうちの 1 つのみでエラーが発生するようになりました。で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があります。これについて私を最も混乱させるのは、ファイルを開いてエラーが読み込まれるまで、すべてが正常にコンパイルおよび実行されることです。

4

3 に答える 3