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”)进行修改。

操作结果:这应该是能够满足大部分的显示位置的麻烦修改显示的广告。

转载于:https://my.oschina.net/u/2505907/blog/620140

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值