Unity Android平臺的AdMob的應用

開發環境
Window7
Unity3D 3.4.1
MB525defy Android 2.2.1

學習:
Eclipse錯誤的解決方案應用

錯誤解決方案
(1)Java錯誤
解決辦法有兩個:首先是項目 - >清除,而後勾上自動構建,能夠解決一類常見的問題。其次是窗口 - >首選項 - >Java - >構建路徑中的項目 - >應用,能夠解決一些意想不到的問題。

(2)錯誤產生最終的歸檔錯誤
這樣的錯誤,是由於證書到期形成的,通常證書的有效期爲一年或一年以上,全部新的Android項目將是一個沒有理由的錯誤,該解決方案是窗口 - >首選項 - > Android - >生成默認的調試密鑰庫的目錄,複製內部地址到兩個文件夾打開刪除調試。密鑰庫和ddms.cfg,從新啓動Eclipse能夠解決。

AdMob應用
首先,Eclipse Android項目導入項目出現AdMob(導入>現有項目導入到工做區),將獲得一個錯誤。

而後選擇修改引用到項目文件右鍵- >屬性- > Java構建路徑內庫, admob-sdk-android.jar,和classes.jar文件從新編輯庫裏面,對訂單和出口檢查。

注:網上的AdMob-sdk-android.jar包的AdMob SDK本身的一些方法,但不是最新的版本,下載學生的最新版本要注意的Android系統版本,最好超過3.2,不然,廣告欄會顯示一段時間的Error. classes.jar Unity,你能夠知道出現的位置再也不是引入了搜索。

若是不出意外,這應該是徹底沒有錯誤,錯誤見上文和Eclipse錯誤的說明。下面咱們來看一下代碼
AdMob.java
<!-- Admob -->
<meta-data android:name="com.google.android.gms.version"  android:value="7327000" />
<activity  android:name="com.google.android.gms.ads.AdActivity"
android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize|smallestScreenSize"    android:theme="@android :style/Theme.Translucent"/>

<!-- Amazon Mobile Ads -->
<activity android:name="com.amazon.device.ads.AdActivity"
android:configChanges="keyboardHidden|orientation|screenSize"/>

<!-- InMobi -->
<activity android:name="com.inmobi.androidsdk.IMBrowserActivity"
android:configChanges="keyboardHidden|orientation|keyboard|smallestScreenSize|screenSize"
android:theme="@android :style/Theme.Translucent.NoTitleBar"
android:hardwareAccelerated="true" />

<!-- Millennial Media -->
<activity android:name="com.millennialmedia.android.MMActivity"
android:theme="@android :style/Theme.Translucent.NoTitleBar"
android:configChanges="keyboardHidden|orientation|keyboard|screenSize" ></activity>

<!-- Keymob -->
<activity android:name="com.keymob.sdk.core.KeymobActivity"   android:theme="@android :style/Theme.Dialog"
android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize|smallestScreenSize" />

<!-- baidu -->
<activity android:name="com.baidu.mobads.AppActivity" android:configChanges="keyboard|keyboardHidden|orientation"/>

<!-- adcolony -->
<activity android:name="com.jirbo.adcolony.AdColonyOverlay" android:configChanges="keyboardHidden|orientation|screenSize"
android:theme="@android :style/Theme.Translucent.NoTitleBar.Fullscreen" />

<activity android:name="com.jirbo.adcolony.AdColonyFullscreen" android:configChanges="keyboardHidden|orientation|screenSize"
android:theme="@android:style/Theme.Black.NoTitleBar.Fullscreen" />

<activity android:name="com.jirbo.adcolony.AdColonyBrowser" android:configChanges="keyboardHidden|orientation|screenSize"
android:theme="@android:style/Theme.Black.NoTitleBar.Fullscreen" />

AndroidMainifest.xml
<meta-data android:name="com.google.android.gms.version"    android:value="8115000" />
<activity   android:name="com.google.android.gms.ads.AdActivity"
android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize|smallestScreenSize"   android:theme="@android:style/Theme.Translucent"/>

<!-- Amazon Mobile Ads -->
<activity android:name="com.amazon.device.ads.AdActivity"
android:configChanges="keyboardHidden|orientation|screenSize"/>

<!-- InMobi -->
<activity android:name="com.inmobi.androidsdk.IMBrowserActivity"
android:configChanges="keyboardHidden|orientation|keyboard|smallestScreenSize|screenSize"
android:theme="@android:style/Theme.Translucent.NoTitleBar"
android:hardwareAccelerated="true" />

<!-- Millennial Media -->
<activity android:name="com.millennialmedia.android.MMActivity"
android:theme="@android:style/Theme.Translucent.NoTitleBar"
android:configChanges="keyboardHidden|orientation|keyboard|screenSize" ></activity>

<!-- Keymob -->
<activity android:name="com.keymob.sdk.core.KeymobActivity"   android:theme="@android:style/Theme.Dialog"
android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize|smallestScreenSize" />

這是一個典型的Android項目的代碼,有幾件事情須要注意,若是你想在本身的應用中使用,根據參考結構的出現建立新的項目,這兩個文件的出現自定義名稱變出便可。Android:價值在AdMob ID填寫申請。出現簡化代碼到最低限度,因此沒有使用資源,若是你想在須要的自定義圖標去修改AndroidManifest實現。在一個Android博客上Feather有提到這個命令能夠防止睡眠。必須用同一個Unity包,當Eclipse項目運行確定是一個錯誤。

當上述沒有問題把AdMob.java jar,選擇AdMob單擊鼠標右鍵 - >導出 - > Java - > JAR文件 - >下一頁

選擇你的JAR文件的路徑和名稱,直接完成這個jar包,它僅包括已編譯AdMob.class很是小,很乾淨。而後打開出現的Unity項目AdMob的測試(文件 - >打開項目),雙擊UnityAdMob,你只能看到一個攝像頭。以上只有一個腳本Ad.cs.

Ad.cs
            class AdEventListener implements IAdEventListener {
            @Override
            public void onLoadedSuccess(int arg0, Object arg1,
                        PlatformAdapter arg2) {
            Log.d(TAG, arg2+" onLoadedSuccess for type "+arg0 +" withdata "+arg1);
            if(arg0==AdTypes.INTERSTITIAL){
                ((IInterstitialPlatform)arg2).showInterstitial();//廣告加載成功的時候就
            }
        }

        @Override
        public void onLoadedFail(int arg0, Object arg1, PlatformAdapter arg2) {
            Log.d(TAG, arg2+" onLoadedFail for type "+arg0 +" withdata "+arg1);
        }

        @Override
        public void onAdOpened(int arg0, Object arg1, PlatformAdapter arg2) {
            Log.d(TAG, arg2+" onAdOpened for type "+arg0 +" withdata "+arg1);
        }

        @Override
        public void onAdClosed(int arg0, Object arg1, PlatformAdapter arg2) {
            Log.d(TAG, arg2+" onAdClosed for type "+arg0 +" withdata "+arg1);
        }

        @Override
        public void onAdClicked(int arg0, Object arg1, PlatformAdapter arg2) {
            Log.d(TAG, arg2+" onAdClicked for type "+arg0 +" withdata "+arg1);
        }

        @Override
        public void onOtherEvent(String eventName, int adtype, Object data,
                PlatformAdapter adapter) {
            Log.d(TAG, adapter+" onLoadedSuccess for type"+adtype +" withEvent "+eventName);
        }
    }

看起來很簡單,並且確實不難,首先創建插件 - > Android -> bin | libs這個文件集,在Eclipse項目AndroidManifest.xml中放置Android目錄,UnityAdMob.jar包就能夠了,這種重寫的AdMob SDK的庫注:捆綁標識符設置爲相同的名稱和Eclipse項目包,即便沒有Ad.cs程序運行也運行一個廣告,這個C#類的廣告交換,以及裏面的兩款Android JNI.FindClass(「XXX」)進行修改。

操做結果:這應該是可以知足大部分的顯示位置的麻煩修改顯示的廣告。java

相關文章
相關標籤/搜索