我试图让admob使用我的应用程序,但每次我将此代码添加到我的MainAcitvity.java:
AdView mAdView = (AdView) findViewById(R.id.adView);
AdRequest adRequest = new AdRequest.Builder().build();
mAdView.loadAd(adRequest);
当我运行它时,应用程序立即崩溃。 我的应用程序是一个DrawerLayout,有4个不同的片段,每个片段包含它自己的广告。我为广告添加了完全相同的代码,就像在我的其他应用中一样,它可以正常工作。
logcat说:
Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'void com.google.android.gms.ads.AdView.loadAd(com.google.android.gms.ads.AdRequest)' on a null object reference
at test.testapp.MainActivity.onCreate(MainActivity.java:110)
at android.app.Activity.performCreate(Activity.java:6010)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1129)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2292)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2413)
at android.app.ActivityThread.access$800(ActivityThread.java:155)
at
android.app.ActivityThread$H.handleMessage(ActivityThread.java:1317)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:135)
at android.app.ActivityThread.main(ActivityThread.java:5343)
at java.lang.reflect.Method.invoke(Native Method)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:905)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:700)
答案 0 :(得分:1)
正在崩溃
mAdView.loadAd(adRequest);
这意味着
AdView mAdView = (AdView) findViewById(R.id.adView);
在XML布局中找不到ID为adView
的组件。
确保您的XML布局中包含ID为adView
的AdView。
答案 1 :(得分:0)
我遇到了类似的问题。我的问题是单一活动。所以对于我的情况当我在资源文件中仔细检查时我的活动有两个资源文件:
\ RES \布局\ activity_main_lauch.xml
\ RES \布局-V21 \ activity_main_lauch.xml
我正在修改单个文件,因此它抛出了错误。 当我在两个文件中应用更改时,它开始工作。 希望它可能有所帮助。
答案 2 :(得分:0)
就我而言,我有两个同名布局:一个用于第23个版本,另一个用于通用。在第一个是一个块与R.id.adView在第二个它没有。 所以,我刚刚删除了第23版,它开始正常工作