私は次のようなレイアウトを持っています:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:ads="http://schemas.android.com/apk/lib/com.google.ads"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:id="@+id/archiveLayout"
android:background="#ECECFC"
>
<ListView
android:id="@android:id/list"
android:layout_alignParentTop="true"
android:layout_width="fill_parent"
android:layout_above="@+id/ad_layout"
android:divider="@drawable/divider"
android:dividerHeight="1px"
android:background="#ECECFC"
android:layout_height="wrap_content"
/>
<TextView
android:id="@+id/tvHaltestellen"
android:layout_centerInParent="true"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<LinearLayout android:layout_width="wrap_content"
android:id="@+id/ad_layout" android:layout_height="wrap_content"
android:gravity="bottom"
android:layout_alignParentBottom="true">
<com.google.ads.AdView android:id="@+id/adView"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:gravity="center"
ads:adUnitId="a15175676fe1308"
ads:adSize="SMART_BANNER"
/>
</LinearLayout>
</RelativeLayout>
これは私が広告をダウンロードする方法です:
if (isOnline())
{
adView.loadAd(new AdRequest());
}
else
{
adView.setVisibility(View.GONE);
}
isOnLine メソッドはインターネット接続をチェックします:
public boolean isOnline() {
boolean res = false;
ConnectivityManager cm = (ConnectivityManager) this.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo netInfo = cm.getActiveNetworkInfo();
if (netInfo != null && netInfo.isConnectedOrConnecting()) {
res= true;
}
else
{
res = false;
}
return res;
}
この回答から助けを得て、別のスレッドで広告をダウンロードしようとしましたが、役に立ちません。
広告でアクティビティを開くと、開かないことがあり、次の例外が発生します。
10-01 12:24:43.423: E/Ads(26065): JS: Uncaught ReferenceError: AFMA_getSdkConstants is not defined (http://media.admob.com/:1)
10-01 12:24:43.423: E/Web Console(26065): Uncaught ReferenceError: AFMA_getSdkConstants is not defined at http://media.admob.com/:1