読者です 読者をやめる 読者になる 読者になる

ノラプログラマーの技術メモ

ネットで調べても出てこなかった情報を載せていきたい技術系ブログ。

cocos2d-xにnend広告を表示させる方法 for android

概要

cocos2d-xなら一つのプログラムでandroidiphoneの両方のアプリが作れる。けれどもアプリにnend広告を載せようとすると手順が一筋縄ではいかなくなる。

意外にもその手順が面倒だったのでメモしておく。というかnendから配布されてるマニュアル通りだとうまくいかないのでメモしておく。

環境

windows 8.1
eclipse 4.2
cocos2d-x 2.2.3
android 4.0

手順

1.nendからSDKとJARをダウンロードする

nendにログインして[広告枠の管理]からSDKをダウンロードする。

f:id:kawai_norimitsu:20140720152052p:plain

次にnendメディアパートナー向け資料一覧から[cocos2d-xモジュール2.2用]をダウンロードする。それぞれを展開しておく。

2.eclipseにjarファイルを追加する

NendSDK_Android-2.4.1\Nend\SDK\内にあるnendSDK-2.4.1.jarファイルをexlipseのlibsフォルダにドラッグ&ドロップする。

f:id:kawai_norimitsu:20140720152710p:plain

次にeclipseの左メニューからプロジェクトの上で右クリックし、プロパティを開く。[java build path]をクリックし、[add jars]ボタンをクリックして[nendSDK-2.4.1.jar]を追加する。

f:id:kawai_norimitsu:20140720152956p:plain

隣りのタブに移動して[nendSDK-2.4.1.jar]にチェックを入れる。この作業をしておかないとjarが有効にならないので注意!

f:id:kawai_norimitsu:20140720153018p:plain

3.eclipseGoogle Play Servicesを追加する

Android SDK Managerを開き、Google Play Servicesをインストールする。すでにインストールされている場合でも最新版がいいのでアップデートしておく。

f:id:kawai_norimitsu:20140720153333p:plain

eclipseの左メニューの上で右クリックし、プロジェクトの追加からGoogle Play Servicesを追加する。Google Play Servicesは以下のパスにある。

AndroidSDKフォルダ/sdk/extras/google/google_play_services/libproject

f:id:kawai_norimitsu:20140720153543p:plain

開発中のプロジェクトにて、google-play-services_libプロジェクトへのを参照を追加する。

具体的にはeclipseの左メニューからプロジェクトの上で右クリックし、プロパティを開く。[android]をクリックし、右画面下の[add]ボタンをクリックして[google-play-services_lib]を追加する。

f:id:kawai_norimitsu:20140720153819p:plain

4.マニフェストの設定を変更する

プロジェクトの[AndroidManifest.xml]ファイルを開いてセクション内に以下の記述を追加する。

<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.INTERNET" />

続いて、セクション内に以下の記述を追加する。

<meta-data
android:name="com.google.android.gms.version"
android:value="@integer/google_play_services_version" />

ここまでで1度、クリーン&ビルドしておこう。エラーが出るようならやり直し。

5.nendモジュールファイルを追加する

eclipseの[Classes]フォルダ内にNendModule.h、NendIconModule.h、NendModule.cpp、NendIconModule.cppファイルを追加する。

f:id:kawai_norimitsu:20140720154859p:plain

続いてプロジェクトに[source folder]を追加する。フォルダ名は[gen_nend]とした。genフォルダにコピーしてしまうと、apkを作ろうとビルドするとフォルダごと消えてしまうから注意!

gen_nendフォルダを作ったら、[nendSDK_cocos2dX_Module]フォルダ内にある[net]フォルダごとドラッグ&ドロップする。

f:id:kawai_norimitsu:20140720155232p:plain

6.nend広告を表示する

プロジェクトの[jni]フォルダ内にある[Android.mk]のLOCAL_SRC_FILESに以下の行を追加する。

../../Classes/NendIconModule.cpp \
../../Classes/NendModule.cpp

広告を表示したいsceneに[NendModule.h]をincludeする。

#include "HelloWorldScene.h"
#include "NendModule.h"
USING_NS_CC;
CCScene* HelloWorld::scene()
{
  ...

広告を表示するプログラムを追加する。apiKeyとspotIDは適宜変更しておくこと。

// on "init" you need to initialize your instance
bool HelloWorld::init()
{
  ...
  // add the sprite as a child to this layer
  this->addChild(pSprite, 0);

  char apiKey[] = "8932b68d22d1d32f5d7251f9897a6aa64117995e";
  char spotID[] = "71000";
  NendModule::createNADViewTop(apiKey, spotID);
  return true;
}

以上で、クリーン&ビルドするとnend広告が表示されるはず。

広告の表示位置も変えることができるので、その辺に興味があればnendが配布しているマニュアルを見てください。ではー