一開始以為Google的AdSense 應該會很容易,上了Admob的官網照著做,結果到處都有問題,結果花了一整天一直有問題網路上一大堆的方法,偏方都沒用。
現在把問題記錄下來方便,如果有人跟遇到跟我一樣的問題,希望對你有所幫助。
第一步當然是,上網去下載
Google AdMob廣告SDK 這篇文章撰寫時sdk版本是6.0.0
解開文件後記得要把 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
在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???
- 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());
}
完工。