現在把問題記錄下來方便,如果有人跟遇到跟我一樣的問題,希望對你有所幫助。
- 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());
}
完工。