万年素人からHackerへの道

万年素人がHackerになれるまで殴り書きするぜ。

「テスト」Unity3DでAdMobの追加方法 in Android

上手く動かないかもしれませんが一応記載しました。私は実機がないためまだ確認取れてません!!!
バックアップを必ずとってやって下さい。バックアップはプロジェクトのフォルダごとをコピーするだけでOK。

http://forum.unity3d.com/threads/77568-AdMob-plugin-that-works-in-Unity-3.2?s=b593b222053ee6486198c8d817c265cd
ここのWozik さんの「AdMobTest.unitypackage (174.1 KB)」をDL

自分のUnityを開いておく。
その状態で、先ほどDLした「AdMobTest.unitypackage」をダブルクリック。

  • Pluginsフォルダに先ほどのものが入ります

AndroidManifest.xml, res, libs, bin が必須です。
他のものは「削除」する。


「New->Project->Android Project->Create Project from existing souce」
から
「プロジェクトディレクトリ->Plugins->Eclipse」を開く。
Build Targetを選ぶのを忘れないように。私は「2.1-Update1」。
Eclipseは英語なので日本語に置き換えて考えて下さい。

  • UnityPlayerに必要なライブラリJARファイルをインクルードさせる

2つのライブラリを設定します。
(1)Applications/Unityのアイコンを右クリックで「Show Package Contents」/Contents/PlaybackEngines/AndroidPlayer/bin/classes.jarにあるもの
   →\Editor\Data\PlaybackEngines\androidplayer\bin\classes.jar(Windows版はここ??)
(2)GoogleAdMobAdsSdk-X.X.X.jar
   →バージョンは時代で違うので。AdMob公式から持ってきてね。
    http://www.android-navi.com/archives/android_1/admob/ ここの手順がよさげ
Eclipseプロジェクトのlibs配下にコピーしておきます
※libsにもともとあったadmob-sdk-androidは競合しないように削除しておく。

<やり方>
プロジェクトの[Properties]を開く。「command + I」
Java Build Path]->[Library]タブ->[Add External JARs...]ボタンを押下。

  • AdMobTestActivity.javaを書き換えよう!
package org.example.AdMobTest;

import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.view.ViewGroup.LayoutParams;
import android.widget.LinearLayout;

import com.unity3d.player.*;

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

public class AdMobTestActivity extends UnityPlayerActivity {
	/** Called when the activity is first created. */
	@Override
	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setupAds();
	}

	private void setupAds() {
		// And this is the same, but done programmatically

		LinearLayout layout = new LinearLayout(this);
		layout.setOrientation(LinearLayout.VERTICAL);
		addContentView(layout, new LayoutParams(LayoutParams.FILL_PARENT,
				LayoutParams.FILL_PARENT));

		AdView adView = new AdView(this, AdSize.BANNER, "あなたのID");
		layout.addView(adView, new LayoutParams(LayoutParams.FILL_PARENT,
				LayoutParams.WRAP_CONTENT));
		

		adView.loadAd(new AdRequest());
	}
}

ちゅうい!
あなたのIDは[パブリッシャー ID]にしてね!!

↓私のつぶやきなので無視していい

import com.admob.android.ads.AdView;
import com.admob.android.ads.SimpleAdListener;
import com.admob.android.ads.AdManager;

これが元にあったがおそらく海外仕様だったのかな?
※これ書かなくていいよ

  • AndroidManifest.xmlも修正しよー
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
      package="com.shinriyo.tsuminbie"
      android:versionCode="1"
      android:versionName="1.0">
    <uses-sdk android:minSdkVersion="7" />

    <application android:icon="@drawable/app_icon" android:label="@string/app_name">
        <activity android:name=".AdMobTestActivity"
                  android:label="@string/app_name">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
		<activity android:name="com.google.ads.AdActivity"
              android:configChanges="keyboard|keyboardHidden|orientation"/>
  </application>
  <uses-permission android:name="android.permission.INTERNET"/>
  <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>

</manifest>

「com.shinriyo.tsuminbie」は適宜自分のに変えよう。

  • ついでにアプリの名前も変えます。


values->strings.xmlのapp_nameを自分のアプリ名に
※日本と海外でアプリ名を分けるときはどうなるか不明

  • ビルドします

私は普通に実行してエミュ立ち上げた。※エミュはForce Closeになって起動失敗するけど大丈夫なのかな?

エミュ起動時に“Android library projects cannot be launched”?なときは
default propertiesていうテキストファイルを

android.library=false

http://programamemo2.blogspot.com/2011/07/android-library-projects-cannot-be.html

  • jar作成

Eclipseのプロジェクトのbinフォルダ内へ移動して(comフォルダが見える位置)、以下のコマンドを実行

jar cvf com.shinriyo.tsuminbie.jar \com

※com.shinriyo.tsuminbie.jarは適宜変えてね
 →今のコマンドはcomフォルダ内を圧縮した「com.shinriyo.tsuminbie.jar」が出来るって意味だよ。

  • 結果のjarをUnityの/Assets/Plugins/Android/binに入ったことを確認する
  • UnityでさらにEclipseでBuildで吐き出して。完成!!

 ※キー入れるの忘れないように!

Unityで2人で作成中らしい作品

http://www.smokymonkeys.com/kyrill/