adView.loadAd()正在崩溃我的整个程序

时间:2014-04-03 22:28:13

标签: android admob ads

我试图将admob广告整合到我的应用中,并且我一直在尝试按照Google的API上的教程进行操作,他们的代码导致整个应用程序崩溃。

我想是因为我正在手机上进行测试而我没有添加adRequest.addTestDevice("TEST_DEVICE_ID");因为要获取您的设备ID,您首先需要申请广告,而我确实无法正在申请广告

这就是我在main.java中获取的来自orroids api教程的行。 Log cat说它在adView.loadAd(adRequest);

崩溃了
 // Look up the AdView as a resource and load a request.
    AdView adView = (AdView)this.findViewById(R.id.adView);
    AdRequest adRequest = new AdRequest.Builder().build();
    adView.loadAd(adRequest);

这是XML

 <com.google.android.gms.ads.AdView
        android:id="@+id/adView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        ads:adSize="BANNER"
        ads:adUnitId="adUnitId"
        />

最后这就是log cat所说的:http://imgur.com/UfB45YF

引用了api:https://developers.google.com/mobile-ads-sdk/docs/admob/fundamentals#play

你觉得它崩溃是因为我没有包含我的测试设备ID吗?或者还有其他事情发生了吗?

3 个答案:

答案 0 :(得分:5)

如果它在带有NullPointerException的adView.loadAd上崩溃,那么在该Activity的布局中没有名为R.id.adView的View。

查看您的Activity on onCreate以及您在setContentView中指定的布局。并确保您还没有使用像libGDX And​​roidApplication那样设置自己的ContentView。

最后做一个干净的构建。

答案 1 :(得分:1)

如果您将代码放在MainActivity.java中,并且您有多个布局关联,即:

activity_main.xml sw600dp\activity_main.xml sw720dp\activity_main.xml

然后您需要在每个布局中放置com.google.android.gms.ads.AdView xml代码,而不管您要测试的设备是什么。

那是我的问题。希望这有助于其他人。 还要确保设置依赖项并更改清单。

答案 2 :(得分:0)

我遇到了同样的问题。当我调试时,我看到一个关于谷歌播放服务版本号不正确的错误,它显示了真正的价值。我将此值添加到strings.xml文件中:

<integer name="google_play_services_version">7095000</integer>

一旦进去,一切都很顺利。