amp@java

            BlogJava :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
            99 隨筆 :: 0 文章 :: 228 評(píng)論 :: 0 Trackbacks
          AdMob是往手機(jī)應(yīng)用程序里添加廣告的最流行的方式,Android程序基本都是靠這個(gè)賺錢。看文檔似乎很簡單,但是操作起來卻不是那么回事,今天搞了一上午才弄明白怎么正確添加,網(wǎng)上搜索到的資料都不適合最新的SDK。

          按照AdMob的官方文檔,很簡單,只要把AdMob的開發(fā)包jar放到Build Path的Libraries里面就行了,這樣做編譯是沒問題的,但是一運(yùn)行就會(huì)出錯(cuò),提示
          java.lang.NoClassDefFoundError:com.google.ads.AdView
          這是因?yàn)镚oogle最近更新了ADT到17.0,改變了項(xiàng)目依賴的檢測方式,官方的說明在這里,不過看得不是很懂。有人用圖形的方式標(biāo)了出來,容易理解一些,看這里。如果不求甚解,就把剛才放到Build Path里面的jar移除,直接在項(xiàng)目目錄下建立一個(gè)libs目錄,然后把那個(gè)jar文件放進(jìn)去就行了。

          AdMob SDK也更新到了4.3.1,網(wǎng)上搜索到的在XML文件里面設(shè)置AdView屬性的方法也已過時(shí),現(xiàn)在不需要建立attrs.xml文件,直接增加一個(gè)
          xmlns:ads="http://schemas.android.com/apk/lib/com.google.ads"
          就可以在AdView標(biāo)簽里面設(shè)置ads開頭的屬性了,關(guān)于xml設(shè)置AdView屬性的官方文檔隱藏得比較深,沒有在目錄中列出來,只能在其他文檔里面的鏈接里進(jìn)去,在這里。
          另外,按照官方說明,要在AndroidManifest.xml里面添加一個(gè)Activity的聲明:
              <activity android:name="com.google.ads.AdActivity"
                        android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize|smallestScreenSize"/>
          后面那個(gè)屬性android:configChanges的最后兩個(gè)值screenSize|smallestScreenSize是在Android 3.2后面才增加的,這兩個(gè)值必須填上去,否則運(yùn)行的時(shí)候會(huì)報(bào)錯(cuò)。如果你使用的SDK是3.2以下的,識(shí)別不了這兩個(gè)值,編譯也不會(huì)報(bào)錯(cuò)。因此你的項(xiàng)目必須使用Android 3.2以上的SDK,也就是項(xiàng)目根目錄下的project.properties文件里面的屬性target的值必須是android-13以上,例如
          target=android-15
          但是可以在AndroidManifest.xml里面設(shè)置android:minSdkVersion和android:targetSdkVersion為比13低的值,這樣就不需要安裝Android 3.2以上的手機(jī)或平板來運(yùn)行這個(gè)程序,實(shí)際上AdMob支持Android 1.5以上的系統(tǒng),只是開發(fā)需要更高版本的SDK而已。


          這次折騰讓我真正體會(huì)到Android更新得實(shí)在太快了,連官方的文檔都來不及更新,開發(fā)人員只能自己摸索總結(jié),幸好有強(qiáng)大的搜索工具,只要你遇到的問題不是第一個(gè),就會(huì)有人找到解決方案。



          posted on 2012-03-25 19:23 amp@java 閱讀(3718) 評(píng)論(7)  編輯  收藏 所屬分類: Android

          評(píng)論

          # re: 2012年3月最新版的ADT 17.0和Google AdMob Ads Sdk Android-4.3.1添加廣告的方法 2012-03-26 00:58 allenny
          正好在困惑這個(gè)事情,很及時(shí),謝謝~  回復(fù)  更多評(píng)論
            

          # re: 2012年3月最新版的ADT 17.0和Google AdMob Ads Sdk Android-4.3.1添加廣告的方法 2012-03-26 09:28 tb
          很好的方法   回復(fù)  更多評(píng)論
            

          # re: 2012年3月最新版的ADT 17.0和Google AdMob Ads Sdk Android-4.3.1添加廣告的方法 2012-03-27 11:06 選礦設(shè)備
          admob 不錯(cuò)  回復(fù)  更多評(píng)論
            

          # re: 2012年3月最新版的ADT 17.0和Google AdMob Ads Sdk Android-4.3.1添加廣告的方法 2012-03-27 17:56 Sevan
          贊樓主,搞了一下午的問題終于解決了~~~  回復(fù)  更多評(píng)論
            

          # re: 2012年3月最新版的ADT 17.0和Google AdMob Ads Sdk Android-4.3.1添加廣告的方法 2012-03-30 07:52 tbw淘寶商城
          很不錯(cuò)的   回復(fù)  更多評(píng)論
            

          # re: 2012年3月最新版的ADT 17.0和Google AdMob Ads Sdk Android-4.3.1添加廣告的方法[未登錄] 2012-04-08 20:02
          多謝啊 雪中送炭  回復(fù)  更多評(píng)論
            

          主站蜘蛛池模板: 安国市| 金堂县| 葫芦岛市| 枝江市| 马龙县| 贵德县| 响水县| 拉孜县| 宁武县| 山东| 分宜县| 乐昌市| 临洮县| 巴彦淖尔市| 汾阳市| 南安市| 福州市| 荔浦县| 丹江口市| 广河县| 彭州市| 桂东县| 新建县| 广灵县| 万源市| 台州市| 嫩江县| 英吉沙县| 三穗县| 平湖市| 太仓市| 弥渡县| 灯塔市| 苍梧县| 紫云| 灵宝市| 中卫市| 盘山县| 桐城市| 长沙县| 若羌县|