Android添加admob广告

6,482 views

今天试着将android的应用植入google abmob的广告,没想到会花了如此长的时间。其实android植入admob的的广告并不复杂,就是版本不一致导致了各种问题,现在总算解决了。以下总结一下。

1.首先要注册一个admob的账号,获取应用的发布ID,这就省略了。

2.下载admob的SDK GoogleAdMobAdsSdk-6.2.1,并导入到项目中去。

3.配置AndroidManifest.xml。

uses-sdk标签

<uses-sdk android:minSdkVersion="7"
android:targetSdkVersion="17" />

activity标签

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

这里activity标签的主要问题是,如果采用android2.1版本开发的,eclipse 的adt插件会提示无法编译的错误:
error: Error: String types not allowed (at ‘configChanges’ with value ‘keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize|smallestScreenSize’).
只有将project.properties的target改为例如target=Google Inc.:Google APIs:17,这样就可以编译通过了。但这也意味着从此要在Android4.2版本下开发应用而不是2.1版本,而且每次运行都要运行4.2的模拟器(4.2的模拟器打开比较慢)。当然,每次运行时候可以再选择target 是2.1的模拟器也能运行,但是编译的速度和打开的速度回偏慢。所以,建议是先将project.properties的target改为例如target=Google Inc.:Google APIs:7,在低版本开发后,将activity标签的android:configChanges去掉,让编译器通过编译,在低版本下运行,最后正式发布时候,才将target改为高版本,例如target=Google Inc.:Google APIs:17。
activity标签去掉android:configChanges属性后,尽管admob广告会报错,但不影响开发。

4.配置layout布局文件
在布局文件中布局admob是比较简单的,例如

<com.google.ads.AdView
android:id="@+id/ad"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
ads:adSize="BANNER"
ads:adUnitId="a150d907e1d3163"
ads:testDevices="TEST_EMULATOR,TEST_DEVICE_ID_GOES_HERE"
ads:loadAdOnCreate="true" />

同时需要在xmlns:android=”http://schemas.android.com/apk/res/android”
添加一个属性

xmlns:ads="http://schemas.android.com/apk/lib/com.google.ads"

否则会报错:error: Error parsing XML: unbound prefix

ads:testDevices=”TEST_EMULATOR,TEST_DEVICE_ID_GOES_HERE”是测试的admob,正式发布时应该去掉。
一个admob的例子如图-1


图-1 :Admob展示广告

源码下载:Admob.zip

Leave a Reply

Your email address will not be published. Required fields are marked *

*

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>