現在把問題記錄下來方便,如果有人跟遇到跟我一樣的問題,希望對你有所幫助。
- Step 1
第一步當然是,上網去下載 Google AdMob廣告SDK 這篇文章撰寫時sdk版本是6.0.0
- Step 2
解開文件後記得要把 GoogleAdMobAdsSdk-6.0.0.jar 更名成 GoogleAdMobAdsSdk.jar , 然後在 Eclipse Project 底下開個目錄libs,把這個檔案copy進去
註:請注意,如果沒有改名就Copy進去,會有 Could not find class com.google.ads.AdView 這個怪問題。信不信,我花了半天才找到這個問題,網路上也有一大堆人在問這個奇怪的問題,但就是沒有正解,
爬文爬了一個下午,發現終於有解答了。
有興趣的人可以看一下,就在下面這篇文章,裏面的一小段話,而且他還不是被StakeOverfllow提問人列為正解喔,不只細看還真以為沒解勒。
getting Fatal Exception caused by admob
- Step3 設定BuildPath
在Project上按右鍵->build path -> configure build path ,選 add jars 加入上一個步驟加入的GoogleAdMobAdsSdk.jar檔。
- Step4 設定AndroidManifast.xml
加入權限<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
加入Activity
<activity android:name="com.google.ads.AdActivity"
android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize|smallestScreenSize"/>
註:看了文件說,只有3.2才支援 screenSize 和 smallestScreenSize,如果你把這兩個傢伙去掉,那就會發生 you must have AdActivity declared in AndroidManifest.xml with configChanges. 這種鬼打牆的情形出現,明明就已經加了AdActivity為什麼還跟我說要設定AdActivity???
結果是 Admob 6.0 支援 Android SDK 3.2 以上,所以一定要把 SDK 改為 3.2以上在重新 Compile過
一樣如果有興趣想進一步研究的,可以看看StakOverflow的解答
Admob implementation Error
一樣如果有興趣想進一步研究的,可以看看StakOverflow的解答
Admob implementation Error
- Step5 取得發佈商ID
上Admob 取得發佈商ID
- Step6 在 main.xml 加入AdView
<com.google.ads.AdView android:id="@+id/adView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
ads:adUnitId="你的 發佈商 id"
ads:adSize="BANNER"
ads:testDevices="TEST_EMULATOR, TEST_DEVICE_ID"
ads:loadAdOnCreate="true"/>
- Step7 在你的Activity裡面的onCreate加入
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
AdView ad = (AdView) findViewById(R.id.adView);
ad.loadAd(new AdRequest());
}
完工。
請問一下,你說的 只有3.2才支援 screenSize 和 smallestScreenSize 所以我再開發android 2.3程式的時後到底要不要加上這兩個呢?? 因為如果我不加上就會出現錯誤,加上的話要把版本改為3.2以上才能使用。 那我把版本改為3.2 發布到APPSTORE時 2.3的手機還是能夠使用嗎?? 還是一定要發布2.3版本ANDOIRD2.3版本的手機才能執行
回覆刪除KVNS 你好,
回覆刪除不好意思現在才看到體的留言,不知道你的問題解決沒?
我的設定就是照著上面的方式做的,加入的sdk是3.2但是使用者是可以從2.2以上的設備都可以安裝跟執行的,(如果你的程式沒有用到2.2以上的功能)。
可以參考我的APP,基本就是按照上面的方法做成的,也支援2.2的設備喔。
https://play.google.com/store/apps/details?id=tw.com.hertz.antisleep&feature=search_result#?t=W251bGwsMSwyLDEsInR3LmNvbS5oZXJ0ei5hbnRpc2xlZXAiXQ..