2014年01月11日

AndroidアプリへAdmob広告を入れる方法…

Androidアプリに広告を入れてみようと色々やってみましたが1日格闘してなんとか表示まで行き着きましたw

Admob登録以降の簡単な表示までの流れ

(1)とりあえずAndroid Development Tools(ADT)のアプデがある可能性があるのでEclepseのメニュー、ヘルプから更新の確認をクリック。


(2)更新を終えたらAndroid SDK マネージャーを起動。Extrasの中にあるGoogle Admob ads SDKをインストール。



(3)適当なプロジェクトを用意。自分は今回「TestAdmob」というプロジェクトを作成。



(4)プロジェクト内のlibsフォルダに「GoogleAdMobAdsSdk-6.4.1.jar」を挿入。GoogleAdMobAdsSdk-6.4.1.jarはSDKからインストール済みなら
      android-sdk-windows → extras → google → admob_ads_sdk
のとこにあると思います。



(5)GoogleAdMobAdsSdk-6.4.1.jarをlibsフォルダに入れた後はプロジェクトを選択して右クリック。
プロジェクトのプロパティからJavaのビルドパスを選択。ライブラリタブからjar追加を選択し、libsフォルダ内のGoogleAdMobAdsSdk-6.4.1.jarを追加します。



(6)次にAndroid Manifest XML に必要な記述を追加します

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

<activity android:name="com.google.ads.AdActivity" android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize|smallestScreenSize" />



<実際に追記してみた画像>



(7)ここまで長々と書きましたがあとはもうちょっとw残るはJAVAのコードを書くだけです。
凄く簡単に書いたものですがこれで表示可能です。

package com.example.testadmob;

import android.app.Activity;
import android.os.Bundle;
import android.view.Menu;
import android.widget.LinearLayout;

import com.google.ads.AdRequest;
import com.google.ads.AdSize;
import com.google.ads.AdView;

public class MainActivity extends Activity
{
private AdView adview;
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
LinearLayout ll =new LinearLayout(this);
setContentView(ll);

adview = new AdView(this, AdSize.BANNER, "広告ユニットIDを書く部分");
ll.addView(adview);

//テスト広告表示用
AdRequest adRequest = new AdRequest();
adRequest.addTestDevice(AdRequest.TEST_EMULATOR); // エミュレータ用
adRequest.addTestDevice("テストに使いたいデバイスのIDを書く部分");// 実機用
adview.loadAd(adRequest);

// 一般的なリクエストを行って広告を読み込む
// adview.loadAd(new AdRequest()); //広告表示用
}


}



やってて詰まったのは旧バージョンの記事で広告ユニットID部分がパブリッシャIDと記述されていて

external/chromium/net/disk_cache/stat_hub.cc:190: [0110/174950:ERROR:stat_hub.cc(190)] StatHub::Init - App isn't supported.

のエラーがずっと出てたこと
使うのはpub-**********ではなく、ca-app-pub-*************の方

あとはAdmobテスト表示用のAndroid デバイスIDがわからなかったことですね。
Amdroid Device IDなるアプリインストールして表示、開発者向けオプションの端末ID、製造番号
MEID、IMSIとか全部ダメでどうしようかと思いましたw

そしたらデバイスIDは普通に広告表示してアプリ起動したときに

To get test ads on this device, call adRequest.addTestDevice(ここにID表示されてたw);

というイケメンコメントをLogCatに発見し無事解決しましたw

とりあえず1日で表示までこぎつけれてホントによかった…






posted by castor-09 at 01:49 | Comment(0) | Android | このブログの読者になる | 更新情報をチェックする

2013年05月10日

固定シェーダからプログラマブルシェーダへ…

AndroidでGLSurfaceView使ってたけど1.0の固定シェーダばかり使ってました。
glPushMatrix()とglPopMatrix()が便利すぎて好きだったんですがPSMsdkでプログラマブルシェーダに触れて訳ワカメだったのでプログラマブルシェーダも勉強しようと思い本を買ってきました。



固定シェーダの1.0とプログラマブルシェーダの2.0で比べながら見れるのが便利だし、3Dの読み込みコードがあったのも決め手w
とりあえず簡単な2D描画や3D読み込みをGLES2.0でどんな感じで書くのか試してみたいと思います。
一通り理解したらUnityかPSMでゲームつくりたいなぁ…



posted by castor-09 at 22:22 | Comment(0) | Android | このブログの読者になる | 更新情報をチェックする

2013年03月05日

AndroidアプリにTwitter4jをつかってツイート機能を実装

ライジングを売り8して絶賛PSO2中ですがたまにはまじめにアンドロイドアプリの記事を…
まぁ記事というか自分用まとめです。
ボタン押したらツイート投稿という超単純なアプリを作ってみたのでそのまとめです。(超単純だけど苦戦したw)


まずはTwitter4jからTwitter4j3.0.3をダウンロード。libフォルダの中にあるtwitter4j-core-3.0.3.jarファイルを使います。使う時はアンドロイドプロジェクトの中のlibsフォルダのなかにtwitter4j-core-3.0.3.jarをコピー。

そしてhttps://dev.twitter.com/でアプリケーションを登録。アクセスレベルは用途に応じて変更。今回主に使ったのはConsumer keyConsumer secret、そしてCallback URLでした。


そして肝心のソースコードですがほぼ100%、ここのサイト様の記事ta9mar開発メモにあるものを使わせていただきました。
OAuth認証部分のクラスを書いたadakodaさんにはひたすら感謝感激…


しかし!コピペしただけではエラー吐いて動きませんでした。その原因は…


原因1…インテントの部分をマニフェストに書き忘れw一応すぐには気付いたよ?w


原因2…マニフェストに<uses-permission android:name="android.permission.INTERNET" />を書いていない。OAuth認証部分のインテント動いてるのにwebページ見れないじゃん!って時は多分これ。


原因3…インテント動いてパス入れたらpinコードが…。この場合は多分https://dev.twitter.com/での登録時にCallback URLが登録されていない。登録時のWebSiteとは別なので注意が必要。String CALLBACK と登録されているCallback URLが同一ならアカ名とパス入れたら認証後、元のアプリに戻ってくる。


原因4…メインスレッドでwebアクセスしててandroid.os.NetworkOnMainThreadExceptionってツッコミうけた。非同期で処理する。試すだけなら下記コード書けば例外発生しない。
StrictMode.setThreadPolicy(new StrictMode.ThreadPolicy.Builder().permitAll().build());


ゲームとかオフラインのアプリばかり作ってたので原因2が鬼門でした。これから自分用にラップしていきたいなぁと思ってます。上手くラップできたらソース公開するかも…




posted by castor-09 at 02:43 | Comment(0) | Android | このブログの読者になる | 更新情報をチェックする