我已将Google Play服务库更新为最新版本。 5.0.8.9,我按照Google开发者网站上的说明创建了AdMob横幅广告。
但是,当我运行应用程序时,当活动管理器对AdView视图进行夸大时,我会得到一个java nullpointerexception。
如果我在XML中或在运行时在java代码中创建AdView无关紧要。
这是我的活动的OnResume代码,其中发生了错误。
@Override
protected void onResume() {
super.onResume();
final int connectionStatusCode = GooglePlayServicesUtil.isGooglePlayServicesAvailable(this);
if (connectionStatusCode == ConnectionResult.SUCCESS) {
adView = (AdView) this.findViewById(R.id.bannerAdView);
AdRequest adRequest = new AdRequest
.Builder()
.build();
adView.loadAd(adRequest);
}
}// end onResume
我的活动的XML代码
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:ads="http://schemas.android.com/apk/res-auto"
android:id="@+id/yourbasiclayout"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:paddingLeft="2dp"
android:paddingRight="2dp"
>
<TextView android:id="@+id/myAdView_Label"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center"
android:textSize="16sp"
android:textStyle="bold"
android:text="Google Ads"/>
<com.google.ads.AdView
android:id="@+id/bannerAdView"
android:layout_width="fill_parent"
android:layout_height="10dp"
ads:adUnitId="MyBannerAdId"
ads:adSize="BANNER" />
</LinearLayout>
答案 0 :(得分:2)
您在布局xml文件中使用了已弃用的API(<com.google.ads.AdView
)。变化:
<com.google.ads.AdView
android:id="@+id/adView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
ads:adUnitId="MyId"
ads:adSize="BANNER" />
为:
<com.google.android.gms.ads.AdView
android:id="@+id/adView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
ads:adUnitId="MY_AD_UNIT_ID"
ads:adSize="BANNER"/>
确保您也导入正确的类:
import com.google.ads.AdRequest;
import com.google.ads.AdView;
而不是:
import com.google.android.gms.ads.AdRequest;
import com.google.android.gms.ads.AdView;
您可以按照有关迁移到新admob here的官方指南进行操作。
答案 1 :(得分:1)
您仍然拥有xml中的旧版Admob视图元素:
<com.google.ads.AdView
android:id="@+id/bannerAdView"
android:layout_width="fill_parent"
android:layout_height="10dp"
ads:adUnitId="MyBannerAdId"
ads:adSize="BANNER" />
将其替换为google play admob(注意com.google.android.gms.ads.AdView
):
<com.google.android.gms.ads.AdView
android:id="@+id/bannerAdView"
android:layout_width="match_parent"
android:layout_height="10dp"
ads:adUnitId="MyBannerAdId"
ads:adSize="BANNER"/>
另请检查您导入Google Play AdView的活动代码,而不是旧版的。
请参阅此处的指南: https://developers.google.com/mobile-ads-sdk/docs/admob/android/play-migration