万年素人からHackerへの道

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

  • ・資産運用おすすめ
    10万円は1000円くらい利益
    資産運用ブログ アセマネ
    • ・寄付お願いします
      YENTEN:YYzNPzdsZWqr5THWAdMrKDj7GT8ietDc2W
      BitZenny:ZfpUbVya8MWQkjjGJMjA7P9pPkqaLnwPWH
      c0ban:8KG95GXdEquNpPW8xJAJf7nn5kbimQ5wj1
      Skycoin:KMqcn7x8REwwzMHPi9fV9fbNwdofYAWKRo

    「テスト」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/