せっかくつくったアプリに広告が実装できない!
という感じで結構長い時間ハマってしまったので、
備忘録も兼ねてメモ。
広告として選んだのはアスタさん。
とりあえず、サイトにあるマニュアルに沿ってSDKを入れ、
コードを書き込んでみる。はいエラー。
一発でうまくいくわきゃないのは最初からわかっていたさ!!
いや、自分のせいなんですけどね。
悩んだところは以下2点のエラー
■Rを変数に解決できません
■致命的エラー: NativeCodeAst.h: No such file or directory
Rを変数に〜〜(日本語おかしくない?)に関しては、
eclipse-Android間の問題だったようで、
ぐぐったら色々と情報が出てきて解決しました。
ちなみに自分の場合はコンパイラー準拠レベルの問題ではなく、
import記述の部分だったようで、
import <開発中のpkg名> としたらエラーがでなくなりました。
なんでだかは、よくわかりません!
次にNo such file or directory、コイツがクセモノだった…
2日悩んでもさっぱり解決しなかったので、
広告元であるアスタさんに問い合わせる。
※とても親切に教えていただけました。どうもありがとうございます。
Android.mkファイルにて正しくインクルード先の
ファイルパスが記述されていないのではという指摘。
あ…そっか…
だ、だって、マニュアルには書いてなかったじゃないか…
(それだけ初歩的という事なんでしょうね)
というわけで、proj.android/jni/Android.mkのファイルを開いて修正
---------------------------------------------
LOCAL_SRC_FILES := hellocpp/main.cpp \
../../Classes/AppDelegate.cpp \
../../Classes/GameScene.cpp \
../../android/NativeCodeAD.cpp \
../../android/NativeCodeADJni.cpp
LOCAL_C_INCLUDES := $(LOCAL_PATH)/../../Classes \
$(LOCAL_PATH)/../../common \
$(LOCAL_PATH)/../../android
---------------------------------------------
こんな感じ。※太字部分が追加した記述
で、無事にコンパイルが通るようになりました、と。
が、また新たに一つ疑問。
コンパイルは通るようにあったのに、eclipse上では依然同様に
import NativeCodeAst.h という部分に対して警告アラート。
"unresolved inclusion" だって。
要するに、import先が見つからないよという事なんでしょうが、
コンパイルはできているのにねぇ。
調べた所どうやら別階層にあるファイルをimportするには
その階層のパスを通して置かないといけないみたい。
(まぁ、そう言われればそらそうなんですけど)
先ほどのAndroid.mkで記述したINCLUDES先のパスはあくまで、
アプリ起動時に読み込まれるものなので、
それとは別にeclipse側でも設定しておけ、ということなのだろう。
とうわけでeclipseの
プロジェクト/プロパティ/C/C++ 一般/パス及びシンボル
からインクルード先の設定で
NativeCodeAst.hがあるcommonフォルダへのパスを追加する。
こんな感じ。
やったーアラートが消えたー!
ということでございました。
(同じ部分で悩んでいる人が多いとは思えないが)
一応、覚え書き。
いやぁ、広告入れるのって大変ですねぇ
追記:アスタさんのマニュアルにある、広告を実装するための記述例の中に
final int FILL_PARENT = LinearLayout.LayoutParams.FILL_PARENT;
というくだりがあるのですが、FILL_PARENTは現在では非推奨らしく、
eclipse上で警告アラートが出てしまいます。
気になる人はFILLをMATCHに変えましょう。それでも問題ないみたいです。
でも、ふるーいandroidはMATCHは使えないんだとか。
ふるーいandroidで最新のゲームやる人がどれくらいいるのかしら…
☆★というわけでcocos2d-xで制作しました★☆
☆★アスタさんの広告もふんだんに入っております(笑)★☆
カテゴリ: アクション
Google Playで詳細を見る
今なら(永久に)無料! 今すぐチェック!!
0 件のコメント:
コメントを投稿