我试图将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吗?或者还有其他事情发生了吗?
答案 0 :(得分:5)
如果它在带有NullPointerException的adView.loadAd上崩溃,那么在该Activity的布局中没有名为R.id.adView的View。
查看您的Activity on onCreate以及您在setContentView中指定的布局。并确保您还没有使用像libGDX AndroidApplication那样设置自己的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>
一旦进去,一切都很顺利。