admob」タグアーカイブ

Admob,FIrebaseに登録したあとの設定の仕方、アイフォンアプリ開発

Admob,FIrebaseに登録したあとの設定の仕方、アイフォンアプリ開発

単にライブラリやAPIをプロジェクトにドラッグする方法もあるらしいけど、pod installを使ったやり方
swift3.0 2017/09/14
続きを読む

4,5 今日のエラー AndEngine google play 関連のエラー,Box2d のアプリがエミュレータでエラー、APIのバージョンを上げる|admobのライブラリの追加忘れ|onAreaTouched(),IOnAreaTouchListenerが動かない|box2d衝突判定ContactListener が正常に動かない|プロジェクト名、パッケイージ名の変更したいときは

_4.今日のエラーandroid,google play 関連のエラー

前回のエラー解消、メモ
グローバル変数設定エラー、This version of the rendering library is more recent than your version of ADT plug-in、バックグラウンドからの復帰でエラー、Cursor cursor=db.rawQuery(selectQuery, null)

android,google play 関連のエラー| apkをアップロードしようとしたら「zipalign が実行されていない APK をアップロードしました。APK で zipalign を実行し、もう一度アップロードする必要があります。」というエラー

eclipseからandroidアプリへのデジタル署名手順が必要らしい
1.”Android Tools” > “Export Signed Application Package…
を実行して、必要な情報を入力
2.指示に従って入力して、新しいAPKファイルを作成して、
3.アップロードして、
4.公開設定にすれば終わりです。
AM8:06

ただ、どのURLかいまわからない。
次のようになるそうです。

https://play.google.com/store/apps/details?id=com.example.application
https://play.google.com/store/apps/details?id=com.ドメイン.アプリ名

_5 今日のエラー AndEngine Box2d のアプリがエミュレータでエラー、APIのバージョンを上げる|admobのライブラリの追加忘れ|onAreaTouched(),IOnAreaTouchListenerが動かない|box2d衝突判定ContactListener が正常に動かない|プロジェクト名、パッケイージ名の変更したいときは

(1)box2dを使用してデバッグしようとするとエミュレータが “Emulator without GPU support detected”と表示してしまう

エミュレータでGPUを設定してもダメ。
PJ名は box2dtext
エミュレータは、API16 android 4.1.2ではエラー

実機でもエラーと思ったら、2回ダメで、その後、OK。一体何だったんだ。
でもエミュレータではエラーのまま。
API16 android 4.1.2ではエラー
>APIのバージョンを上げて API 18 android 4.3でOK

(2)プロジェクト名、パッケイージ名の変更したいときは

フォルダ名をfinderでコピーしておいてEclipseにインポートして、

マニフェストファイルを開いて変更したいcom.xxx.newnameにして
左側のsrcのところを右クリックしてRefactor > Renameにして、Upadate referencesとRename subpackagesをチェックします。

詳しくは以下のリンクを参考。
Eclipseのリファクタリング機能を活用する « Tech Booster
Androidのプロジェクト名・パッケージ名の変更 [Android] – phonybearの日記

(3)admobのライブラリの追加忘れ

アドモブの広告を追加しようとしたら、なかなかエラーが消えない。
よくよく考えたら、ADMOBのライブラリを追加していませんでした。

libs/GoogleAdMobAdsSdk-XXX.jarとなるように、GoogleAdMobAdsSdk-XXX.jarをコピーします。
私は手動で、コピペしました。
もし、すでに、教科書通りにGoogleAdMobAdsSdk-XXX.jarを挿入していたら、挿入済みを一旦削除してください。
すでに登録されているGoogleAdMobAdsSdk-XXX.jarがあるとエラーになります。

そして、activityj_main.xmlに
xmlns:ads=”http://schemas.android.com/apk/lib/com.google.ads”
を忘れずに。

(4)onAreaTouched(),IOnAreaTouchListenerが動かない

設定してもなぜか動かない、そして、アクションを起こしたいスプライトを正しくタップしているのに、ログにも出ない。
原因:該当のスプライトを登録していませんでした。
対応:registerTouchArea(sprite);として登録しました。

設定
setOnAreaTouchListener(MainScene.this);//dont forget

定義
boolean onAreaTouched

登録
registerTouchArea(sprite);

onAreaTouchedを使って、タップされたスプライトなどにアクションを与えたいとき、
設定して、定義してもどのスライトに対して、登録しないとコンパイルエラーや実行時のエラーがなくても正常に動作しません。
タッチ後のアクションを与えるのかがわからないからです。

これはonSceneTouchEvent(Scene, TouchEvent)と異なります。
onSceneTouchEventは、
設定
setOnSceneTouchListener(MainScene.this);
して、定義を書けば動きます。
この点が異なります。

(5)box2d衝突判定ContactListener が正常に動かない 

ContactListenerの記載自体は問題ありません。

問題だったのは、他のところで、衝突した際に、どのBODYかを判別するために
if (x2.getBody().getUserData().equals(“player”)として
bodyの登録情報を取得する際に、設定されていない場合に強制エラーとなるようです。
値が設定されていなければ、FALSEとなるのかと思いましたが、強制エラーでした。

そこで、
if (x1.getBody().getUserData()!=null && x1.getBody().getUserData().equals(“player”) )
として、nullチェックを入れるようです。
これで、強制的なエラーはなくなりました。

また、x1,x2のどちらに該当のBODYが入るかはわからないので、両方判定を入れた変えてOR
判定を入れます。最初は、どちらか一方にBODYーAにX1が入っていれば、残りの方にBODY-BにX2が入って相互に判定してくれると思っていましたが、そうではなくて、BODY-AにX2、BODY-BにX1という場合は、判定できないようでした。
つまり、どちらに入るかはきちんと判定できるようにしなくてはいけないようです。
結果として以下のようになりました。
woodRectangleは、Rectangleで接触したら赤色に変化するようにして、衝突判定を視覚的にわかるようにしたものです。

@Override
	        public void beginContact(Contact contact)
	        {
	            final Fixture x1 = contact.getFixtureA();
	            final Fixture x2 = contact.getFixtureB();
	            if (x1.getBody().getUserData()!=null && x2.getBody().getUserData()!=null ){
	            	if ( x1.getBody().getUserData().equals("hi") && x2.getBody().getUserData().equals("another") ||
	            			x1.getBody().getUserData().equals("another") && x2.getBody().getUserData().equals("hi") 
	            			){
		        		Log.d("contact", "contact_hi");
		        		woodRectangle.setColor(1.0f, 0.0f, 0.0f);
		        	}
	            	
	        	}
}

アイフォンアプリ開発、今日のエラー、AdMob、表示、非表示でエラーになります。

アイフォンアプリ開発、今日のエラー、AdMob、表示、非表示でエラーになります。
シーンが切り替わるたびにAdMobウィンドウを消して、再表示をしたいと思いました。
onExitにAdMobの削除関連のコードを記載したのですが、シーンが切り替わるとしばらくしてクラッシュします。
シーンを切り替えるときに、直前の場所に削除関連のコードを記載してOK、クラッシュ無し。

それとも、一度Admobを表示させたら、シーン毎に削除させる必要が無くて、そのままでもよかったのかな。

つまり、一度Viewを追加したら、そのままにしておけばよいということだろうか。

よくよく考えれば、AdMobが原因と言うよりは、addSubviewを連続して追加していることに問題がありそうです。

前回のADMOBエラー関連

Admob広告表示のプログラムの実施過程、成功とエラーと改善まとめ 2013年4月AppController *appを作って、gadbanner_.rootViewController=app.navControllerとしました

Admob広告表示のプログラムの実施過程、成功とエラーと改善まとめ 2013年4月

ぐーぐるAdMobが表示されないエラー、コードを代えて成功、アイフォンアプリ開発
コードを代えて成功しました。こちらをどうぞ
AppController *appを作って、gadbanner_.rootViewController=app.navControllerとしました。

-(void)adMob{
    AppController *app =  (AppController*)[[UIApplication sharedApplication] delegate]; 
    CGRect rect = CGRectMake(0, 0, 320, 50);//top objective-cは左上座標系でcocos2dは下が原点
    gadbanner_ = [[GADBannerView alloc] initWithFrame:rect];
   
    gadbanner_.adUnitID = @"a1------hiden------b";//publisher ID
    //gadbanner_.rootViewController =[[[UIApplication sharedApplication] keyWindow] rootViewController];
    gadbanner_.rootViewController=app.navController;
    
     gadbanner_.delegate = self;
    [app.navController.view addSubview:gadbanner_];
    //[[[CCDirector sharedDirector] view] addSubview:gadbanner_];変更
    
    GADRequest *request = [GADRequest request];
    //GADRequestError *error;//=[GADRequestError initialize];
    request.testing = YES;//YESにしないと開発時はでません。NOは実機かな
    [gadbanner_ loadRequest:request];
    }

以下、検討中過程の記録です。
アイフォンアプリ開発、
環境は
cocos2d: cocos2d-iphone v2.1-rc1だと、ver2.0で成功したコードをそのままではだめで、少し変更が必要です。
ver2.0では、正常に広告が表示されました。

教訓:
マイナーバージョンでも注意が必要。
できるだけ安定したバージョンを使った方が賢明です。

<内部リンク、関連サイトへのリンク>
Admob広告表示情報、関連リンク
cocos2d:iPhoneアプリにAdMobを実装

iPhoneアプリ開発、広告、Google AdMob Ads iOSの情報リンクメモ姉妹サイト
iPhoneアプリにAdMob【プロジェクト付】 ≪ iPhoneアプリ練習
cocos2dでiAdとAdmobを表示 – おかひろの雑記
cocos2d と AdMob 連携のサンプル作りました | Zero4Racer PRO Developer’s Blog
cocos2dでAdMobを実装する ≪ なんかもう実験場

Admob広告表示プログラム、成功Ver2.0の場合は成功
request.testing = YES;
をNOとしていて、シミュレータで表示されませんでした。
YESで表示されました。

cocos2d-iphone v2.1-rc1でのAdMob表示表示されないエラー、コードを代えて成功、アイフォンアプリ開発はこちら

Admob広告表示プログラムの失敗、エラー
cocos2d: cocos2d-iphone v2.1-rc1だと、ダメです。
ver2.0では、正常に広告が表示されます。
なにやら、Viewの仕組みが変わってしまったようですね。

コンソールに表示されたエラー
To get test ads on this device, call: request.testDevices = [NSArray arrayWithObjects:GAD_SIMULATOR_ID, nil];
(YESにしているので、パラメータが足りないだけで。特にここは問題ない)

Must set the rootViewController property of GADBannerView before calling loadRequest:

以上

ぐーぐるAdMobが表示されないエラー、コードを代えて成功、アイフォンアプリ開発、AppController *app = (AppController*)[[UIApplication sharedApplication] delegate];で作成

ぐーぐるAdMobが表示されないエラー、コードを代えて成功、アイフォンアプリ開発
  前回のエラー、広告が表示されないはこちら
 
アイフォンで広告表示

 AdMobのSDKをGoogleAdMobAdsSdkiOS-6.4.1としました。6.3.0から。
しかし、広告は表示されず。残念

 <<<<>>>>>
 環境:cocos2d-iphone v2.1-rc1 
 XCODE 4.6.2 : Deployment Target 4.3
 AdMob  6.4.1 4/18/2013 Fixed a crash that occurred when the Advertising Identifier is nil.
 
 症状:AdMobが表示されない。つまり、ビューが表示されない。
 エラー: Must set the rootViewController property of GADBannerView before calling loadRequest:
 <<<<>>>>>
 
 
 以下、検討、結論(成功、AdMob表示されるようになりました。)
 
 
 AdMobが正常に表示されない改善
 1.最新版のAdMobSDKにする
 結果:だめでした。
 
 2.参考コードを参考にしてみる(成功)
 結果:広告が表示されました。(1)を参考にしました。
結論として、
AppController *app = (AppController*)[[UIApplication sharedApplication] delegate];
を追加して、app.navControllerを与えました。

 変更したコード
 

 AppController *app =  (AppController*)[[UIApplication sharedApplication] delegate];   
 gadbanner_.rootViewController=app.navController;
  [app.navController.view addSubview:gadbanner_];
  

 
 
 

 -(void)adMob{
    AppController *app =  (AppController*)[[UIApplication sharedApplication] delegate]; 
    CGRect rect = CGRectMake(0, 0, 320, 50);//top objective-cは左上座標系でcocos2dは下が原点
    gadbanner_ = [[GADBannerView alloc] initWithFrame:rect];
   
    
    gadbanner_.adUnitID = @"a1------hiden------b";//publisher ID
    //gadbanner_.rootViewController =[[[UIApplication sharedApplication] keyWindow] rootViewController];
    gadbanner_.rootViewController=app.navController;
    
     gadbanner_.delegate = self;
    [app.navController.view addSubview:gadbanner_];
    //[[[CCDirector sharedDirector] view] addSubview:gadbanner_];変更
    
    GADRequest *request = [GADRequest request];
    //GADRequestError *error;//=[GADRequestError initialize];
    request.testing = YES;//YESにしないと開発時はでません。NOは実機かな
    [gadbanner_ loadRequest:request];
    }
 

 参考
 (1)
 

 -(void)createAdmobAds
{
    AppController *app =  (AppController*)[[UIApplication sharedApplication] delegate];    
    // Create a view of the standard size at the bottom of the screen.
    // Available AdSize constants are explained in GADAdSize.h.
    mBannerView = [[GADBannerView alloc] initWithAdSize:kGADAdSizeSmartBannerLandscape];

    // Specify the ad's "unit identifier." This is your AdMob Publisher ID.
    mBannerView.adUnitID = MY_BANNER_UNIT_ID;

    // Let the runtime know which UIViewController to restore after taking
    // the user wherever the ad goes and add it to the view hierarchy.

    mBannerView.rootViewController = app.navController;
    [app.navController.view addSubview:mBannerView];

    // Initiate a generic request to load it with an ad.
    [mBannerView loadRequest:[GADRequest request]];

    CGSize s = [[CCDirector sharedDirector] winSize];

    CGRect frame = mBannerView.frame;
    frame.origin.y = s.height;

    frame.origin.x = (s.width/2.0f - frame.size.width/2.0f);

    mBannerView.frame = frame;

    [UIView beginAnimations:nil context:nil];
    [UIView setAnimationDuration:0.5];
    [UIView setAnimationCurve:UIViewAnimationCurveEaseOut];

    frame = mBannerView.frame;
    frame.origin.y = s.height - frame.size.height;
    frame.origin.x = (s.width/2.0f - frame.size.width/2.0f);

    mBannerView.frame = frame;
    [UIView commitAnimations];    

}
 

 
 (2)これは試していません。
 

 AppController *app = (AppController*) [[UIApplication sharedApplication] delegate];
[admobBannerView setRootViewController:[app navController]];
[[CCDirector sharedDirector].view addSubview:admobBannerView];

[admobBannerView loadRequest:[GADRequest request]];
 
 

Admobの実装テスト、アイフォンアプリ広告バナー搭載、AppController *appを作って、gadbanner_.rootViewController=app.navController

Admobの実装テスト、アイフォンアプリ広告バナー搭載

先に感想を述べると、設定は、簡単でした。特にエラーも無く。でも1点だけ気づきにくかったのが、
request.testing = YES;
をNOとしていて、シミュレータで表示されませんでした。
YESで表示されました。

cocos2dでも広告を表示できます。
また、グーグルのAdmobサイトもURLの記載が無くてもパブリッシャーIDは取得できました。
必須ではないようでした。
これで、次期開発のアイフォンアプリでは、広告をつけて申請できそうです。

admob

次の二つをさんこうにしました。
Objective-C:iPhoneアプリにAdMobを実装
cocos2d:iPhoneアプリにAdMobを実装

前回の開発

その後、2013年6,7月の作業です。
cocos2d for iPhoneのバージョンをアップするとAdmobのコードがエラーとなりました。
古いcocos2d for iPhoneのバージョンなら動作していました。
そこで、コードを改善したものが以下の記事です。
今後もcocos2d for iPhoneのバージョンでAdmobが表示されないことがありそうなので、バージョンアップは注意しましょう。

ぐーぐるAdMobが表示されないエラー、コードを代えて成功、アイフォンアプリ開発
コードを代えて成功しました。こちらをどうぞ
AppController *appを作って、gadbanner_.rootViewController=app.navControllerとしました。

-(void)adMob{
    AppController *app =  (AppController*)[[UIApplication sharedApplication] delegate]; 
    CGRect rect = CGRectMake(0, 0, 320, 50);//top objective-cは左上座標系でcocos2dは下が原点
    gadbanner_ = [[GADBannerView alloc] initWithFrame:rect];
   
    gadbanner_.adUnitID = @"a1------hiden------b";//publisher ID
    //gadbanner_.rootViewController =[[[UIApplication sharedApplication] keyWindow] rootViewController];
    gadbanner_.rootViewController=app.navController;
    
     gadbanner_.delegate = self;
    [app.navController.view addSubview:gadbanner_];
    //[[[CCDirector sharedDirector] view] addSubview:gadbanner_];変更
    
    GADRequest *request = [GADRequest request];
    //GADRequestError *error;//=[GADRequestError initialize];
    request.testing = YES;//YESにしないと開発時はでません。NOは実機かな
    [gadbanner_ loadRequest:request];
    }

メモ、iPhoneアプリ開発、広告、Google AdMob Ads iOSの情報cocos2d リンクメモ

メモ、iPhoneアプリ開発、広告、Google AdMob Ads iOSの情報cocos2d リンクメモ

・実施結果
cocos2d ver2.0では成功
cocos2d-iphone v2.1-rc1でAdmob広告が表示されない、その後表示OK 2013年4月

cocos2d:iPhoneアプリにAdMobを実装外部サイト
このサイトの内容で先に試してみようと思います。

リンク情報
iPhoneアプリ開発、広告、Google AdMob Ads iOSの情報リンクメモ姉妹サイト
iPhoneアプリにAdMob【プロジェクト付】 ≪ iPhoneアプリ練習
cocos2dでiAdとAdmobを表示 – おかひろの雑記
cocos2d と AdMob 連携のサンプル作りました | Zero4Racer PRO Developer’s Blog
cocos2dでAdMobを実装する ≪ なんかもう実験場

のリンクを記載してます。

前回の開発情報