Kotlin 是目前 Google 力推的開發 Android APP 的語言,語法比 Java 更簡潔
* 建立一個新專案
* 輸入專案名稱 Test,選擇專案放置目錄為 D:\test\kotlin\Test,注意 include Kotlin support 要打勾
* 指定最低相容裝置,在本例為 JellyBean4.1(API16)
* 選擇 Activity 樣本
* 設定 Activity 的名字,在本例為 MainActivity,並且不打算相容舊版,所以 Backwards Compatibility(AppCompat) 的打勾取消
* 開啟 strings.xml,加入 AdMob 的測試帳號
<resources> <string name="app_name">Test</string> <!-- adMob app id 測試 --> <string name="admob_app_id">ca-app-pub-3940256099942544~3347511713</string> <!-- 橫幅 測試 --> <string name="banner_ad_unit_id">ca-app-pub-3940256099942544/6300978111</string> <!-- 插頁 測試 --> <string name="interstitial_ad_unit_id">ca-app-pub-3940256099942544/8691691433</string> <!-- 影片 測試 --> <string name="video_ad_id">ca-app-pub-3940256099942544/5224354917</string> </resources>
* 切換成 Project 模式,打開 app 層級的 build.gradle,加入 play-services-ads
dependencies { ... ... // AdMob implementation 'com.google.android.gms:play-services-ads:17.1.2' }
* 開啟 AndroidManifest.xml
<application ... ... /> <!-- AdMob --> <meta-data android:name="com.google.android.gms.ads.APPLICATION_ID" android:value="@string/admob_app_id"/>
* 開啟 activity_main.xml,置換成下述內容,注意第 6 行
xmlns:ads="http://schemas.android.com/apk/res-auto"
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" xmlns:ads="http://schemas.android.com/apk/res-auto" android:layout_width="match_parent" android:layout_height="match_parent" tools:context=".QbankMainActivity"> <com.google.android.gms.ads.AdView android:id="@+id/adView" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_alignParentBottom="true" android:layout_alignParentLeft="true" android:layout_alignParentStart="true" android:layout_alignParentRight="true" android:layout_alignParentEnd="true" ads:adSize="SMART_BANNER" ads:adUnitId="@string/banner_ad_unit_id" /> </RelativeLayout>
開啟 MainActivity.kt
package com.example.test import android.app.Activity import android.os.Bundle import com.google.android.gms.ads.AdRequest import com.google.android.gms.ads.MobileAds import kotlinx.android.synthetic.main.activity_main.* // 注意這一行 class MainActivity : Activity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_qbank_main) // AdMob 初始化 MobileAds.initialize(this, getString(R.string.admob_app_id)); // 橫幅廣告 // 透過第 8 列的 import, 直接參照到 adView, 而不用再 findViewById adView.loadAd(AdRequest.Builder().build()) }